交叉编译几种常见的报错

交叉编译几种常见的报错

ID:8810707

大小:35.50 KB

页数:3页

时间:2018-04-08

交叉编译几种常见的报错_第1页
交叉编译几种常见的报错_第2页
交叉编译几种常见的报错_第3页
资源描述:

《交叉编译几种常见的报错》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

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

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。