当前位置: 首页 > article >正文

海思芯片 交叉编译curl

编译之前需要安装编译工具链

sudo apt-get update
sudo apt-get install gcc-aarch64-linux-gnu

检查是否安装成功(我的是aarch64-v01c01-linux-gnu-gcc,aarch64-v01c01-linux-gnu-gcc 工具链是一个特定版本的 ARM 交叉编译工具链)

 aarch64-linux-gnu-gcc --version

安装好工具链后,要准备交叉编译curl所依赖的库和包,例如openssl ,因为我们想使用ssl功能,支持HTTPS等安全协议(不需要就不用准备这步,编译出错怎么解决后面会说)。

编译openssl

下载openssl

wget https://github.com/openssl/openssl/archive/refs/tags/OpenSSL_x_y_z.tar.gz

 下载成功并解压

tar -xzvf openssl-x.y.z.tar.gz

解压成功: 

进入解压后的openssl,配置makefile文件 

 ./config no-asm shared no-async --prefix=/usr/local/openssl--cross-compile-prefix=/usr/local/openssl aarch64-linux-gnu-

 配置成功:

 执行make 

如果出现错误 -m64 就打开makefile文件删除-m64

然后安装 opensslmake install

 验证是否成功:

openssl version

 which openssl

 编译curl

下载curl 并解压

wget https://curl.se/download/curl-8.10.0.tar.bz2 
tar -xjf curl-8.10.0.tar.bz2
cd curl-8.10.0

 进入到解压后的目录

 配置 curl 使用交叉编译工具链

配置 curl 源码以使用交叉编译工具链进行编译。你需要设置交叉编译的 --hostCC 等参数。对于 aarch64-v01c01-linux-gnu-gcc 工具链,配置命令如下:

./configure --host=aarch64-v01c01-linux-gnu --prefix=/path/to/installation/directory CC=aarch64-v01c01-linux-gnu-gcc 

 如何使用上述的命令 没有设置curl依赖的库 就会报错说找不到什么什么库(就像下面的图片中那样) 这个时候就需要设置库

 报错说Brotli、Zstd、LDAP、libpsl 库找不到 只需要在命令后面加上 --without-bortli  --without-zstd等。()

./configure --host=aarch64-v01c01-linux-gnu --prefix=/path/to/installation/directory CC=aarch64-v01c01-linux-gnu-gcc --disable-shared --enable-static --without-brotli --without-zstd --without-ldap

 需要的就使用 --with-ssl=路径

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==编辑 

配置成功就是下面的界面,可以发现 no 就表示不能使用这个功能, 如果你要使用这个功能就需要先配置好相应的环境,就像openssl一样,我们安装了openssl 并且在配置命令中写了相应的命令,所以ssl 就是on。

上面就是我们配置好了makefile文件

下面运行makefile文件,和运行openssl的makefile文件的步骤是一样的

 make

 

make install 

检查是否安装成功 (通过查看版本和位置)

curl --version

which curl

 我查看了 和我安装的版本对不上 ,但是也没有报错 不知道整对没有,明天再验证到底对不对


http://www.kler.cn/a/445556.html

相关文章:

  • Docker:Dockerfile(补充四)
  • Flask内存马学习
  • CSDN数据大屏可视化【开源】
  • fastAPI接口的请求与响应——基础
  • pycharm debug
  • python飞机大战游戏.py
  • mysql面试核心概念
  • 网络攻防章节测验
  • 解决QT制作的软件,全屏显示后最小化,点击任务栏图标打开时不是全屏而是窗口状态的问题
  • 【C#】预处理指令
  • 【JAVA】JAVA泛型的<T>一时在前面一时在很后面怎么理解
  • 基于海思soc的智能产品开发(巧用mcu芯片)
  • Mybatis映射关系
  • 【C++】sophus : rxso3.hpp 实现了 3D 空间中的旋转和缩放操作的 RxSO3 类 (二十一)
  • 利用PHP和phpSpider进行图片爬取及下载
  • SpringBoot+Vue3实现阿里云视频点播 实现教育网站 在上面上传对应的视频,用户开会员以后才能查看视频
  • 【信息系统项目管理师】高分论文:论信息系统项目的进度管理(人力资源管理系统)
  • 基于Python3编写的Golang程序多平台交叉编译自动化脚本
  • AlipayHK支付宝HK接入-商户收款(PHP)
  • Java-29 深入浅出 Spring - IoC 基础 启动IoC容器的方式 Java方式与Web(XML、配置)方式
  • 游戏渠道假量解决方案
  • sql-labs 练习笔记
  • 二叉搜索树Ⅱ【东北大学oj数据结构8-2】C++
  • PDFMathTranslate - 基于AI的双语对照 PDF 翻译工具
  • Meta重磅发布Llama 3.3 70B:开源AI模型的新里程碑
  • 如何更改 maven 指定的 java 版本 set JAVA_HOME=C:\Program Files\Java\jdk1.8