交叉编译三方库方法及相关问题解决办法(基础库依赖和头文件缺失)

本文详细介绍了在已安装交叉编译工具链的前提下,如何进行第三方库的交叉编译,包括针对包含configure项目的操作步骤,以及处理直接编译、依赖库编译和头文件缺失的情况。
摘要由CSDN通过智能技术生成

以下内容全部建立在交叉编译工具链已经安装完的前提下,如果没有安装,寻找对应的工具链按README操作即可

交叉编译第三方库

操作方法

包含configure的项目

# 这里是交叉编译工具链安装的根目录,这个目录下的文件夹应该包含bin之类的
source /opt/petalinux/2022.1/environment-setup-cortexa72-cortexa53-xilinx-linux
# 配置configure
./configure --host=aarch64-xilinx-linux --prefix=$PWD/install
# host:编译出来的二进制程序所执行的主机
# prefix:用来指定最后make install的安装路径,默认路径是本机的/usr/bin,但我们目的是安装在板上,如果编出来的同名文件覆盖了本机的二进制文件会有大问题,所以在本地新建一个临时目录用来存放,最后全部复制到板上/usr对应位置
make
make install

这里source,host都要更改为你所需要的交叉编译工具链的位置和名称,不要直接复制,不要直接复制,不要直接复制!

直接make的项目

可以先打开makefile文件,看到里面有如下内容:

CC	= $(CROSS_COMPILE)gcc

所以这里我们要设置CROSS_COMPILE变量,使其对应我们的交叉编译工具。
同时注意到安装目录部分有:

prefix	=/usr/local
sbindir	=$(prefix)/sbin
mandir	=$(prefix)/man
man8dir	=$(mandir)/man8

同样为了不污染我们的目录,需要单独创建一个文件夹,这里同样修改为prefix=./install

最后使用如下方法编译:

make CROSS_COMPILE=aarch64-xilinx-linux-

注意不要忘记最后的横杠,且此处也需要修改为你要用的交叉编译工具名称。

交叉编译第三方库(扩展库)时依赖另外的第三方库(基础库)

  1. 先编译基础库,基础库要安装在交叉编译器所在的目录的对应位置下

     --prefix = /opt/petalinux/2022.1/sysroots/x86_64-petalinux-linux
    
  2. 在编译并安装扩展库(同普通方法)

交叉编译缺少头文件

先找到交叉编译工具链所在位置,比如在/opt/petalinux/2022.1/sysroots/x86_64-petalinux-linux/usr/bin/aarch64-xilinx-linux中。

在命令行中输入

echo 'main(){}' | /opt/petalinux/2022.1/sysroots/x86_64-petalinux-linux/usr/bin/aarch64-xilinx-linux/aarch64-xilinx-linux-gcc -E -v -

目录换成你的交叉编译工具所在目录,不要直接复制
注意最后是-E -v -,不要删掉那个横杠
在输出中找到#include <...> search starts here:,将所需要的头文件复制到该目录下。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值