求助:各位路过的大侠帮忙看看调用编译好的静态链接库libSDL2_ttf-2.0.12的问题,先谢过了!

游不离2010 游不离2010 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
LINUX环境:虚拟机安装unbuntu10.04 交叉编译环境:ARM-LINUX-GCC-4.5.1
最近,在unbuntu上交叉编译开源代码libSDL2-2.0.3、libSDL2_tty-2.0.12、libfreetype-2.4.4,出现下图问题:

具体操作步骤:
一、交叉编译源代码为静态链接库
1、交叉编译libfreetype-2.4.4
1)./configure --host=arm-linux --prefix=/usr/local/cross_compile/libfreetype-2.4.4
2)make
3)make install
2、交叉编译libSDL2-2.0.3
1)./configure --prefix=/usr/local/cross_compile/libsdl2-2.0.3 --host=arm-linux --with-gnu-ld --disable-video-x11
2)make
3)make install
3、交叉编译libSDL2_tty-2.0.12
交叉编译这个静态链接库时,依赖libfreetype.a、libSDL2.a,具体见下面configure
1)./configure --prefix=/usr/local/cross_compile/libsdl2_ttf-2.0.12 --host=arm-linux --with-sdl-prefix=/usr/local/cross_compile/libsdl2-2.0.3 --with-freetype-prefix=/usr/local/cross_compile/libfreetype-2.4.4 CFLAGS="-
I/usr/local/cross_compile/libsdl2-2.0.3/include -I/usr/local/cross_compile/libfreetype-2.4.4/include" LIBS="-L/usr/local/cross_compile/libsdl2-2.0.3/lib -lSDL2 -L/usr/local/cross_compile/libfreetype-2.4.4/lib -lfreetype" LDFLAGS=-
L/usr/local/cross_compile/libfreetype-2.4.4/lib
2)make
3)make install
二、在ubuntu下的QT中交叉编译测试代码(该测试代码中调用libfreetype.a、libSDL2.a、libSDL2_tty.a),QT工程截图:

就会出现:


显然是libSDL2_tty.a中的函数调用libfreetype.a里面的函数时,找不到libfreetype.a里面的函数的实现,搞了两天已经没有头绪啦!


但是,我将三个开源代码进行非交叉编译(configure 中不加--host=arm-linux)生成的静态库名称不变,然后在QT下非交叉编译测试代码(该测试代码中调用libfreetype.a、libSDL2.a、libSDL2_tty.a),就可以编译成功,生成的测试程序在QT下 也可以正常运行。[/b]
...全文

相关推荐

评论 2
收藏 已收藏
分享
返回顶部
游不离2010
Linux/Unix社区 23,224 成员 74,535 内容