标签:头文件 交叉 gnueabi 编译器 linux include arm
今天遇到了交叉编译找不到头文件的问题,解决方法如下:
- 首先,已知include <>的会在安装编译器时指定的路径下去寻找该头文件,include ""则会在源文件所在路径寻找。但由于头文件之间调用关系复杂,仅仅复制stdio.h到当前路径并且将<>换为include “”解决不了问题
- 最后解决方法是将/usr/include/下的所有头文件都复制到了编译器寻找头文件的路径下
echo 'main(){}' | arm-poky-linux-gnueabi-gcc -E -v - //注意,结尾就是一个-,并不是缺失了元素
- 首先使用上述命令,获取交叉编译器搜索头文件的默认路径(下方只是节选,请自行找到该段):
#include <...> search starts here: /opt/fsl-imx-x11/4.1.15-2.0.1/sysroots/x86_64-pokysdk-linux/usr/lib/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.3.0/include /opt/fsl-imx-x11/4.1.15-2.0.1/sysroots/x86_64-pokysdk-linux/usr/lib/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.3.0/include-fixed End of search list.
- 接下来就是cp /usr/include/. /opt/fsl-......省略 -r,就ok了
- 补充:官方头文件的搜索顺序为:通过GCC参数-I指定的目录;通过环境变量C_INCLUDE_PATH指定的目录;编译器的默认目录。搜索规则是,当不同目录下存在相同的头文件时,先搜到哪个就使用哪个
标签:头文件,交叉,gnueabi,编译器,linux,include,arm 来源: https://www.cnblogs.com/wbzhu13/p/15047272.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。