在这里下载curl下载地址
CPPFLAGS="-I/你的_SDK/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/arm-rockchip830-linux-uclibcgnueabihf/sysroot/usr/include/openssl" LDFLAGS="-L/你的_SDK/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/arm-rockchip830-linux-uclibcgnueabihf/sysroot/usr/lib" LIBS="-ldl" ./configure --host=arm-linux CC=/你的_SDK/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf-gcc CXX=/你的_SDK/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf-g++ --with-ssl --enable-shared --enable-static --disable-dict --disable-ftp --disable-imap --disable-ldap --disable-ldaps --disable-pop3 --disable-proxy --disable-smtp --disable-telnet --disable-tftp --disable-zlib --without-ca-bundle --without-gnutls --without-libidn --without-libssh2 --without-nss --without-zlib --without-libpsl --prefix=/你的_SDK/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/arm-rockchip830-linux-uclibcgnueabihf/sysroot/usr
这条命令总共分为两部份
环境变量
要引入openssl,所以需要告诉编译器去哪里找openssl的头文件和库文件。
- CPPFLAGS
-I后接openssl的头文件所在的目录 - LDFLAGS
-L后接openssl的库文件所在的目录 - LIBS="-ldl"
LIBS指定链接时需要额外链接的库。-ldl是链接 动态加载库 (Dynamic Linking Library) 的简写,提供在程序运行时加载共享库(.so文件)的功能
配置脚本和选项
./configure 是一个配置脚本,它会检查系统环境,并根据给定的选项生成 Makefile。
-
--host=arm-linux:这是一个 交叉编译 选项。它指定了最终 目标 机器的架构是
arm-linux。这意味着你正在一个不同架构的机器(例如,x86_64)上编译,但生成的可执行文件将在arm-linux机器上运行。 -
CC=***-gcc:CC环境变量指定了 C 编译器 的路径。 -
CXX=***-g++:CXX环境变量指定了 C++ 编译器 的路径。 -
--with-ssl:这个选项告诉配置脚本启用 SSL/TLS 支持。由于前面已经指定了 OpenSSL 库的路径,所以它会使用 OpenSSL 来提供这个功能。
-
--enable-shared --enable-static:这两个选项告诉配置脚本同时构建 共享库 (
.so) 和 静态库 (.a)。 -
--disable-…和--without-…:这些选项用于禁用软件的特定功能或依赖。
--disable通常用于禁用程序自带的功能,而--without通常用于禁用对外部库的依赖。在这个命令中,大量选项被用来禁用不必要的协议和功能(如 FTP, IMAP, LDAP, SMTP 等),以及外部库(如 zlib, GnuTLS 等),以减少最终生成的可执行文件的大小和复杂性,这在嵌入式或资源受限的设备上很常见。 -
--prefix=安装目录:这个选项指定了编译完成后 安装 程序的 目标路径。
make install命令会将所有生成的文件(可执行文件、库、头文件等)复制到这个指定的目录中。你可以像我一样直接安装到工程sdk的sysroot/usr目录下,也可以先输出到其他目录,然后复制lib和include到工程目录中。
补充
根证书 cURL提供