本文主要是介绍aarch64-poky-linux-gcc交叉编译报错缺少头文件.h解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
0x00 前言
最后更新日期:2023-10-18
0x01 解决方案
aarch64-poky-linux-gcc
交叉编译时报错缺少头文件.h
可能是因为没有设置--sysroot
编译选项,该选项会从指定目录下搜索.h
头文件及lib
库文件。
一般来说,编译的时候会从/usr/include
中搜寻头文件、从/usr/lib
中搜寻依赖库,当设置了--sysroot=dir
后则会从dir/usr/include
搜索头文件、从dir/usr/lib
中搜索依赖库。
--sysroot
编译选项官方说明如下:
--sysroot=dir
Use dir as the logical root directory for headers and libraries. For example, if the compiler normally searches for headers in /usr/include and libraries in /usr/lib, it instead searches dir/usr/include and dir/usr/lib.If you use both this option and the -isysroot option, then the --sysroot option applies to libraries, but the -isysroot option applies to header files.The GNU linker (beginning with version 2.16) has the necessary support for this option. If your linker does not support this option, the header file aspect of --sysroot still works, but the library aspect does not.
所以缺少头文件报错可以尝试通过--sysroot
编译选项指定aarch64-poky-linux
路径位置解决该问题。
例如:
aarch64-poky-linux-gcc -o udp_test udp_client_ipv4.c --sysroot=/opt/nxp-real-time-edge/2.1/sysroots/aarch64-poky-linux
此时编译没有头文件报错。
以上。
参考文档:
https://blog.csdn.net/zvvzxzko2006/article/details/110467542
这篇关于aarch64-poky-linux-gcc交叉编译报错缺少头文件.h解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!