欢迎来到天天文库
浏览记录
ID:8810707
大小:35.50 KB
页数:3页
时间:2018-04-08
《交叉编译几种常见的报错》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、交叉编译几种常见的报错由于是第一次交叉编译,不知道会出现什么问题,思路就是先把gcc和ld都改成arm的,然后遇到什么问题在解决什么问题,以下过程都是在这个思路下进行。1.指定arm的编译器和连接器:只是把gcc改为arm-none-linux-gnueabi-gcc,ld改为arm-none-linux-gnueabi-ld,其他的都没有修改。出现以下错误:arm-none-linux-gnueabi-ld:warning:librarysearchpath"/usr/local/lib"isunsafeforcross-compilationarm-
2、none-linux-gnueabi-ld:skippingincompatible/usr/local/lib/libfreetype.sowhensearchingfor-lfreetypearm-none-linux-gnueabi-ld:skippingincompatible/usr/local/lib/libfreetype.awhensearchingfor-lfreetypearm-none-linux-gnueabi-ld:cannotfind-lfreetype分析原因是:链接的这些库文件都是在PC编译器下编译出来的,现在把它们和用a
3、rm-none-linux-gnueabi-gcc编译出来的文件做链接,当然会出错。解决方法:这些库重新用arm-gcc重新编译生成相应的库。下面使用是重新编译库文件的过程:重新编译freetype根据交叉编译的文档,我创建了一个文件夹/usr/local/arm-linux来存放编译后的库文件。执行:./configure–host=arm-none-linux-gnueabi–prefix=/usr/local/arm-linux注意:host的参数应该是交叉编译环境的前缀。另外,freetype自动生成的include文件夹有点小问题,编译完成后的
4、include目录结构是/include/ft2build.h和/include/freetype2/freetype/***.h如果直接使用会出现头文件找不到的问题,这里涉及到freetype的一个小技巧:使用freetype时只需要包含ft2build.h这一个头文件即可,因为ft2build.h里面会自动包含其他需要的头文件。而ft2build.h中的包含其他头文件的路径是/freetype/***.h,显然找不到相应的头文件。我们把freetype2中的freetype文件整个拷贝到include目录下,然后把freetype2删除即可。原目录结
5、构:…/include/freetype2/freetype/***.h…/include/ft2build.h修改以后是:…/include/freetype/***.h…/include/ft2build.h如果安装完成后直接就是后面这个目录结构就不用修改了。或者在编译时直接使用-I再加一个头文件的目录。-I/…/include/freetype2使用arm编译器和使用pc上的编译器编译过程差不多,需要注意的是我们需要重新指定路径以免把原来的库文件覆盖掉。2.在编译时出现这种错误:解决上面的问题之后,再次编译,出现以下错误:/usr/local/ar
6、m-2009q1/bin/../arm-none-linux-gnueabi/libc/usr/include/sys/types.h:62:error:conflictingtypesfor‘dev_t’/usr/local/arm-2009q1/bin/../arm-none-linux-gnueabi/libc/usr/include/linux/types.h:13:error:previousdeclarationof‘dev_t’washere开始以为是编译器自动寻找types.h文件然后自动包含进来了,后来所有的都头文件删除,然后每加一个头
7、文件进来就编译看看是否出现错误,后来发现这个我的交叉编译器对于某些头文件的使用顺序有要求。例如:#include#include#include#include第一种编译没有问题,第二种会出现上面的错误。而这两种写法在PC的gcc上都没有错误。我的交叉编译器版本:gccversion4.3.3(SourceryG++Lite2009q1-203)感觉这个问题是由于pc上的gcc和交叉编译使用的gcc的行为不同才导致的。3.链接时这样的错误:arm-none-linux-g
8、nueabi-ldmain.oes_run_file.oes_fbctl.oes
此文档下载收益归作者所有