linux下编译安装curl

本文详细介绍如何从源码编译并安装curl。步骤包括下载curl源码、生成configure文件、执行编译与安装等。最后验证curl是否安装成功。

1.下载curl

 git clone https://github.com/curl/curl.git 

2.在curl目录下生成configure文件

 (1)cd curl

 (2)./buldconf 

3.编译生成curl

 (1) ./configure

 (2) make

  (3)  make install 

4.在src下生成了curl

   (1) /curl -V 

如果出现下述命令:

1 curl 7.49.1-DEV (x86_64-unknown-linux-gnu) libcurl/7.49.1-DEV
2 Protocols: dict file ftp gopher http imap pop3 rtsp smtp telnet tftp
3 Features: IPv6 Largefile UnixSockets

curl就安装成功了。

Linux 下**交叉编译 `curl`** 是一个常见的需求,尤其是在为嵌入式设备、ARM 开发板、Android、IoT 设备等目标平台构建 `curl` 二进制文件时。 交叉编译意味着你在一种架构(如 x86_64)上编译程序,但目标运行环境是另一种架构(如 ARM、MIPS、RISC-V 等)。 --- ## 🛠️ 交叉编译 curl 的基本流程 ### 1. 准备交叉编译工具链(Cross Toolchain) 你需要一个适用于目标平台的交叉编译工具链,例如: | 目标平台 | 工具链示例 | |----------|------------| | ARM 32-bit | `arm-linux-gnueabi-gcc` | | ARM 64-bit (ARM64/Aarch64) | `aarch64-linux-gnu-gcc` | | MIPS | `mips-linux-gnu-gcc` | | RISC-V | `riscv64-unknown-linux-gnu-gcc` | 你可以从以下方式获取: - 使用发行版仓库安装(如 `sudo apt install gcc-arm-linux-gnueabi`) - 使用 [Buildroot](https://buildroot.org/) - 使用 [crosstool-ng](https://crosstool-ng.github.io/) - 使用 SDK(如 NXP、Rockchip 提供的 SDK) --- ### 2. 下载 curl 源码 ```bash git clone https://github.com/curl/curl.git cd curl ``` 或者下载官方 release: ```bash wget https://curl.se/download/curl-7.85.0.tar.gz tar -zxvf curl-7.85.0.tar.gz cd curl-7.85.0 ``` --- ### 3. 配置交叉编译环境 #### 示例:交叉编译到 ARM64(aarch64) ```bash CC=aarch64-linux-gnu-gcc \ AR=aarch64-linux-gnu-ar \ RANLIB=aarch64-linux-gnu-ranlib \ ./configure \ --host=aarch64-linux-gnu \ --prefix=/usr/local/arm64/curl \ --without-ssl \ --enable-static \ --disable-shared \ --disable-debug \ --with-zlib \ --enable-ipv6 ``` #### 如果你希望启用 SSL/TLS 支持(如 OpenSSL) 你需要先交叉编译安装 OpenSSL 到目标目录,然后配置: ```bash CC=aarch64-linux-gnu-gcc \ AR=aarch64-linux-gnu-ar \ RANLIB=aarch64-linux-gnu-ranlib \ ./configure \ --host=aarch64-linux-gnu \ --prefix=/usr/local/arm64/curl \ --with-ssl=/usr/local/arm64/openssl \ --enable-static \ --disable-shared \ --disable-debug \ --with-zlib=/usr/local/arm64/zlib \ --enable-ipv6 ``` --- ### 4. 编译安装 ```bash make -j$(nproc) make install ``` 这会将编译好的 `curl` 可执行文件和库安装到 `--prefix` 指定的目录。 --- ### 5. 检查编译结果 使用 `file` 命令检查生成的二进制是否为目标架构: ```bash file /usr/local/arm64/curl/bin/curl ``` 输出示例(ARM64): ``` /usr/local/arm64/curl/bin/curl: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, for GNU/Linux 3.7.0, not stripped ``` --- ## 🧩 依赖库的交叉编译(如 OpenSSL、zlib) 如果你需要启用 HTTPS 支持,你需要先交叉编译这些库: ### 1. 交叉编译 zlib ```bash CC=aarch64-linux-gnu-gcc \ AR=aarch64-linux-gnu-ar \ RANLIB=aarch64-linux-gnu-ranlib \ ./configure --prefix=/usr/local/arm64/zlib make -j$(nproc) make install ``` ### 2. 交叉编译 OpenSSL ```bash CC=aarch64-linux-gnu-gcc ./Configure linux-arm64 --prefix=/usr/local/arm64/openssl no-shared make -j$(nproc) make install ``` --- ## 📦 部署到目标平台 将安装目录打包后复制到目标设备: ```bash tar -czvf curl-arm64.tar.gz -C /usr/local/arm64/curl . ``` 然后在目标平台上解压并添加到环境变量: ```bash export PATH=/path/to/curl/bin:$PATH ``` --- ## ✅ 示例:完整交叉编译脚本(ARM64 + OpenSSL) ```bash export CC=aarch64-linux-gnu-gcc export AR=aarch64-linux-gnu-ar export RANLIB=aarch64-linux-gnu-ranlib export PREFIX=/usr/local/arm64/curl export OPENSSL_PREFIX=/usr/local/arm64/openssl ./configure \ --host=aarch64-linux-gnu \ --prefix=$PREFIX \ --with-ssl=$OPENSSL_PREFIX \ --enable-static \ --disable-shared \ --disable-debug \ --enable-ipv6 make clean make -j$(nproc) make install ``` --- ## ⚠️ 常见问题及解决方法 | 问题 | 原因 | 解决方法 | |------|------|----------| | 编译失败提示找不到 `ssl.h` | OpenSSL 未正确交叉编译 | 先交叉编译 OpenSSL 并指定路径 | | 编译出的 curl 无法运行 | 依赖库未打包 | 静态链接 `--enable-static` 或打包动态库 | | `configure: error: cannot guess build type` | 缺少 `config.guess` | 使用 `autoreconf -fiv` 重新生成配置 | | `configure: error: C compiler cannot create executables` | 工具链未正确安装 | 检查 `gcc-arm64-linux-gnu` 是否安装 | --- ## ✅ 总结 | 步骤 | 说明 | |------|------| | 1. 安装交叉编译工具链 | 如 `aarch64-linux-gnu-gcc` | | 2. 下载并进入 curl 源码目录 | `git clone https://github.com/curl/curl` | | 3. 设置交叉编译环境变量 | `CC`, `AR`, `RANLIB` | | 4. 配置 configure 参数 | `--host`, `--prefix`, `--with-ssl` | | 5. 编译安装 | `make && make install` | | 6. 部署到目标设备 | 打包 bin/lib 并部署 | ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值