编译之前需要安装编译工具链
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
![](https://i-blog.csdnimg.cn/direct/fa5b0cd96d2a488bb40eebf09925f4cf.png)
安装好工具链后,要准备交叉编译curl所依赖的库和包,例如openssl ,因为我们想使用ssl功能,支持HTTPS等安全协议(不需要就不用准备这步,编译出错怎么解决后面会说)。
编译openssl
下载openssl
wget https://github.com/openssl/openssl/archive/refs/tags/OpenSSL_x_y_z.tar.gz
![](https://i-blog.csdnimg.cn/direct/68b665e85ee141b681ff08e021145134.png)
下载成功并解压
tar -xzvf openssl-x.y.z.tar.gz
![](https://i-blog.csdnimg.cn/direct/c50471dae6964478a1a07375fc5a30c6.png)
解压成功:
![](https://i-blog.csdnimg.cn/direct/e12c64a962f84b288327274f869b7ab3.png)
进入解压后的openssl,配置makefile文件
./config no-asm shared no-async --prefix=/usr/local/openssl--cross-compile-prefix=/usr/local/openssl aarch64-linux-gnu-
![](https://i-blog.csdnimg.cn/direct/b1d9a2df3f6c49be9f66c538511a5a45.png)
配置成功:
![](https://i-blog.csdnimg.cn/direct/bc5f708458554ed7a72d83e09c821741.png)
执行make
如果出现错误 -m64 就打开makefile文件删除-m64
然后安装 opensslmake install
验证是否成功:
openssl version
which openssl
![](https://i-blog.csdnimg.cn/direct/e85a538091b6404eaf7e8388629a5972.png)
编译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
进入到解压后的目录
![](https://i-blog.csdnimg.cn/direct/3e005f22986c4be0b029fbb636c16700.png)
配置 curl
使用交叉编译工具链
配置 curl
源码以使用交叉编译工具链进行编译。你需要设置交叉编译的 --host
和 CC
等参数。对于 aarch64-v01c01-linux-gnu-gcc
工具链,配置命令如下:
./configure --host=aarch64-v01c01-linux-gnu --prefix=/path/to/installation/directory CC=aarch64-v01c01-linux-gnu-gcc
如何使用上述的命令 没有设置curl依赖的库 就会报错说找不到什么什么库(就像下面的图片中那样) 这个时候就需要设置库
![](https://i-blog.csdnimg.cn/direct/dab3204854af487cb6a748eb2130abc1.png)
报错说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=路径
编辑
配置成功就是下面的界面,可以发现 no 就表示不能使用这个功能, 如果你要使用这个功能就需要先配置好相应的环境,就像openssl一样,我们安装了openssl 并且在配置命令中写了相应的命令,所以ssl 就是on。
![](https://i-blog.csdnimg.cn/direct/a101626caea940d7b2db5cf3be0d5310.png)
上面就是我们配置好了makefile文件
下面运行makefile文件,和运行openssl的makefile文件的步骤是一样的
make
![](https://i-blog.csdnimg.cn/direct/4c66d47aadb547bc8e97d47ea169171e.png)
make install
![](https://i-blog.csdnimg.cn/direct/e1b4e441461c400b9589387354f5e472.png)
检查是否安装成功 (通过查看版本和位置)
curl --version
which curl
![](https://i-blog.csdnimg.cn/direct/0a7b32b0547a482c859ffeea0db9e542.png)
我查看了 和我安装的版本对不上 ,但是也没有报错 不知道整对没有,明天再验证到底对不对