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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/115614.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript从入门到精通系列第二十三篇:JavaScript中的数组

前言 1:对象的分类 在JavaScript中,对象可以分为以下几种类型: 内置对象:这些对象是由JavaScript引擎提供的,如Object、Array、String、Date、RegExp等。 宿主对象:这些对象是由宿主环境(浏览…

Fiber Golang:Golang中的强大Web框架

揭示Fiber在Go Web开发中的特点和优势 在不断发展的Web开发领域中,选择正确的框架可以极大地影响项目的效率和成功。介绍一下Fiber,这是一款令人印象深刻的Golang(Go语言)Web框架。以其飞快的性能和强大的特性而闻名,…

【算法训练-动态规划 一】【应用DP问题】零钱兑换、爬楼梯、买卖股票的最佳时机I、打家劫舍

废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【动态规划】,使用【数组】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为&…

VR虚拟现实技术在法院技能培训中的应用

开展法治宣传教育,是全面贯彻落实科学发展观的重要决策,也是保障和促进经济设备会发展和实施“十一五”规划的内在要求。为了让全民法治文化宣传深入人们群众中,突破性地采用VR虚拟现实、web3d开发和三维仿真技术,开发线上法治文化…

大数据技术学习笔记(二)—— Hadoop运行环境的搭建

目录 1 准备模版虚拟机hadoop1001.1 修改主机名1.2 修改hosts文件1.3 修改IP地址1.3.1 查看网络IP和网关1.3.2 修改IP地址 1.4 关闭防火墙1.5 创建普通用户1.6 创建所需目录1.7 卸载虚拟机自带的open JDK1.8 重启虚拟机 2 克隆虚拟机3 在hadoop101上安装JDK3.1 传输安装包并解压…

<蓝桥杯软件赛>零基础备赛20周--第1周

报名明年4月蓝桥杯软件赛的同学们,如果你是大一零基础,目前懵懂中,不知该怎么办,可以看看本博客系列。 每个周末发1个博客,共20周,到明年3月初结束。跟上本博客的节奏,省赛三等奖跑不掉。 每周3…

[QT] 如果你怎么试HTTP下载文件得到的QNetworkReply的readAll()都是空数据(长度为0),请看这里

1,首先你对比看看QT官方给出的例子 Download Data from URL - Qt Wiki 2,再看看是不是要设置重定向,如果要,要设置一下 QNetworkRequest request(imageUrl); request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, …

torch张量的降维与升维

文章目录 一、降维和升维未完待续....一、降维和升维 squeeze和unsqueeze是torch张量常用的降维与升维的一种方式,但这种方式只能增添或减少大小为1的维度,如下: x1 = torch.randn(1, 8, 256, 256) x1 = torch.squeeze(x1,dim=

Linux高性能服务器编程——ch6笔记

第6章 高级I/O函数 6.1 pipe函数 用于创建一个管道,以实现进程间通信。 int pipe(int fd[2]); 读端文件描述符fd[0]和写端文件描述符fd[1]构成管道的两端,默认是阻塞的,fd[0]读出数据,fd[1]写入数据。管道内部传输的数据是字节…

Nvidia显卡基础概念介绍

一、PCIe与SXM 1.1 Nvidia GPU PCIe PCIe(peripheral component interconnect express)是一种高速串行计算机扩展总线标准,是英特尔公司在2001年提出来的,它的出现主要是为了取代AGP接口,优点就是兼容性比较好,数据传输速率高、…

【Java】ListIterator

列表迭代器: ListIterator listIterator():List 集合特有的迭代器该迭代器继承了 Iterator 迭代器,所以,就可以直接使用 hasNext()和next()方法。特有功能: Object previous():获取上一个元素boolean hasPr…

【PG】数据库管理

查看现有数据库 SELECT datname FROM pg_database;或者 \l创建数据库 create database name;

Zabbix告警与飞书集成

一、配置媒介 1、下载飞书的Zabbix媒介类型如下: zbx_export_mediatype_feishu.xml 2、Zabbix中导入媒介类型 Zabbix Web中选择管理 > 报警媒介,然后导入该媒介类型。导入规则选择“更新现有的”和“创建新的”。 3、配置飞书媒介类型用户 Zabbi…

从一个webpack loader中学习

chalk:给终端输出加一些自定义的样式 loader-utils:webpack的loader配置中会通过options传入一些用户自定义参数,就可以通过该包提供的getoptions()获取 node-fetch:Node.js的模块,用于从远程服务器获取数据 关于bab…

口袋参谋:如何一键获取竞品数据?这招实用!

​在淘宝天猫上开店,市场竞争日益激烈,想要做好店铺,我们就不得不去分析竞品的数据了。 很多卖家开店后,一上来就直接卡在类目前10,折腾了一两个月才发现自己对标错了对象,最终竹篮打水一场空。 所以&…

uni-app:实现时钟自走(动态时钟效果)

效果 核心代码 使用钩子函数 mounted(),设置定时器,是指每秒都要去执行时间的获取,以至于实现时间自走的效果 mounted() { this.updateTime(); // 初始化时间 setInterval(this.updateTime, 1000); // 每秒更新时间 }, 自定义方法…

2023年赋能更多的人

最近接触到一些新人,是真正的网络新人,慢慢理解了新人的困惑。 对于新人,每天获取的信息五花八门,这是好的也是极其不好的。因为他们不知道如何筛选,到底适不适合自己去做。 我一直在劝大家去做一些内容创造性的事情…

小程序点击更多上拉显示选项

1、写一个两个按钮 2、给两个按钮加动画的样式 3、写方法控制两个按钮的显示 <button class"more-button" bindtap"toggleMoreOptions">更多</button><!-- 按钮列表容器&#xff0c;初始状态设置为隐藏 --> <view class"option…

Ubuntu22.04系统 Cgroup v2 切换成v1

使用v1导致docker容器启动失败 Failed to mount cgroup at /sys/fs/cgroup/systemd: Operation not permitted Issue #4072 lxc/lxc GitHub https://github.com/lxc/lxc/issues/4072 原因&#xff1a;ubuntu自21.04版本后的版本&#xff08;不包含21.04&#xff09;linux内…

QT判断平台和生成版本设置输入目录

QT判断平台和生成版本设置输入目录 pro工程文件中常用的宏定义Chapter1 QT判断平台和生成版本设置输入目录Chapter2 Qt pro文件中判断 x86/arm(aarch64)交叉编译环境&#xff0c;区分 linux/windows系统, debug/release版本Chapter3 Qt的版本判断、跨平台选择与pro工程文件输出…