• 主页
  • 系统维护与使用
  • 应用程序开发
  • 内核源代码
  • 驱动程序开发
  • CPU和硬件区
  • UNIX文化
  • Solaris
  • Power Linux
游不离2010 嵌入式软件工程师  2014年06月17日
求助:各位路过的大侠帮忙看看调用编译好的静态链接库libSDL2_ttf-2.0.12的问题,先谢过了!
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]
...全文
66 点赞 收藏 2
写回复
2 条回复

还没有回复,快来抢沙发~

发动态
发帖子
Linux/Unix社区
创建于2007-08-27

7047

社区成员

7.3w+

社区内容

Linux/Unix社区 应用程序开发区
社区公告
暂无公告