aarch64-poky-linux-gcc交叉编译报错缺少头文件.h解决方案

0x00 前言

演示用操作系统:Ubuntu 18.04.6 LTS \n \l
aarch64-poky-linux-gcc版本:gcc version 10.2.0 (GCC)
最后更新日期:2023-10-19

0x01 解决方案

aarch64-poky-linux-gcc交叉编译时报错缺少头文件.h可能是因为没有设置--sysroot编译选项,sysroot被称为逻辑根目录,只在链接过程中起作用,作为交叉编译工具链搜寻头文件、库文件的根路径,即配置该选项后交叉编译工具会从--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-linuxudp_client_ipv4.c交叉编译成可执行文件udp_test,则使--sysroot配置到aarch64-poky-linux安装目录中的***/sysroots/***-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

以上。

参考文档:
1.https://blog.csdn.net/zvvzxzko2006/article/details/110467542
2.https://blog.csdn.net/c_he_n/article/details/125433504
3.https://blog.csdn.net/u011192270/article/details/106176333?spm=1001.2101.3001.6650.7&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-7-106176333-blog-110467542.235%5Ev38%5Epc_relevant_sort_base1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-7-106176333-blog-110467542.235%5Ev38%5Epc_relevant_sort_base1

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Qt Creator 中添加 aarch64-poky-linux-gcc,需要进行以下步骤: 1. 打开 Qt Creator,点击菜单栏的 “工具” -> “选项”,进入选项设置界面。 2. 在左侧列表中选中 “设备”,然后点击 “添加” 按钮,弹出 “添加设备” 对话框。 3. 在 “添加设备” 对话框中,选择 “通用 Linux 设备” 并点击 “下一步”。 4. 在 “通用 Linux 设备配置” 对话框中,填写设备的名称、主机名、用户名、密码等信息,并在 “工具链” 中选择 “自定义”。 5. 点击 “自定义” 按钮,弹出 “自定义工具链” 对话框。在 “编译器路径” 中填写 aarch64-poky-linux-gcc 的路径,例如:/opt/poky/2.4.3/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc。 6. 点击 “确定” 按钮,返回 “通用 Linux 设备配置” 对话框。点击 “下一步” 按钮,进入 “测试连接” 对话框。 7. 点击 “测试” 按钮,如果连接成功,则弹出 “连接成功” 的提示框。点击 “完成” 按钮,退出 “通用 Linux 设备配置” 对话框。 8. 在 Qt Creator 中创建一个新的项目,选择 “通用 Linux 设备” 作为构建套件,并选择刚才添加的设备。 9. 在项目的 “构建设置” 中,选择 “自定义” 的构建步骤,将 aarch64-poky-linux-gcc 设置为编译器。 这样,就成功添加了 aarch64-poky-linux-gcc 到 Qt Creator 中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值