运行配置脚本
使用 Configure 脚本配置 OpenSSL,指定目标平台和安装路径:
curl downloads 各个版本
Old 1.1.1 Releases | OpenSSL Library 各个版本
从 OpenSSL 官网下载源码包
tar -xzf openssl-1.1.1b.tar.gz
cd openssl-1.1.1b/
运行配置脚本
使用 Configure 脚本配置 OpenSSL,指定目标平台和安装路径:
./Configure linux-armv4 --prefix=/home/lxh/arm-libs/install --cross-compile-prefix=arm-linux-gnueabihf-
./Configure linux-aarch64 \
--prefix=/home/lxh/Downloads/rk356x_linux_release_v1.3.1/arm-libs/install \
--cross-compile-prefix=aarch64-none-linux-gnu- \
shared
-
-
linux-armv4:指定目标平台为 ARM。 -
--prefix:指定安装路径(替换为你的目标路径)。 -
--cross-compile-prefix:指定交叉编译工具链前缀。
-
-
调整配置(可选)
如果需要调整配置,可以编辑生成的Makefile,例如:-
修改
CFLAGS和LDFLAGS以优化编译选项。 -
确保
-march=armv7-a或-mcpu=cortex-a9等选项适合你的目标硬件。 -
编译 OpenSSL
-
编译源码
运行以下命令开始编译:make -j$(nproc)-
-j$(nproc):使用多核并行编译以加快速度。
-
-
检查编译结果
编译完成后,检查生成的库文件和可执行文件:file apps/openssl
输出应显示为 ARM 架构的可执行文件。
-
将编译好的 OpenSSL 安装到指定路径:
make install
# 1. 创建安装目录
mkdir -p /home/lxh/Downloads/rk356x_linux_release_v1.3.1/arm-libs/install
# 2. 查看目录权限
ls -ld /home/lxh/Downloads/rk356x_linux_release_v1.3.1/arm-libs/install
# 3. 配置 OpenSSL
cd ~/Downloads/openssl-1.1.1b
./Configure linux-aarch64 \
--prefix=/home/lxh/Downloads/rk356x_linux_release_v1.3.1/arm-libs/install \
--cross-compile-prefix=aarch64-none-linux-gnu- \
shared
# 4. 编译
make clean
make -j$(nproc)
# 5. 安装(会自动创建必要的子目录)
make install
# 6. 验证安装结果
ls -la /home/lxh/Downloads/rk356x_linux_release_v1.3.1/arm-libs/install/
ls -la /home/lxh/Downloads/rk356x_linux_release_v1.3.1/arm-libs/install/lib/
ls -la /home/lxh/Downloads/rk356x_linux_release_v1.3.1/arm-libs/install/include/
下载并解压 curl 源码
tar -xvjf curl-7.64.1.tar.bz2
cd curl-7.64.1
使用 configure 脚本配置编译选项,指定交叉编译工具链和目标平台
./configure --host=arm-linux-gnueabihf --prefix=/home/lxh/arm-libs/install \
--with-ssl=/home/lxh/arm-libs/install \
--disable-ldap \
--disable-ldaps \
--without-libpsl \
--without-libidn2 \
--without-zstd \
--without-brotli \
--without-libpsl \
CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++
-
./configure --host=aarch64-none-linux-gnu \ --prefix=/home/lxh/Downloads/rk356x_linux_release_v1.3.1/arm-libs/install \ --with-ssl=/home/lxh/Downloads/rk356x_linux_release_v1.3.1/arm-libs/install \ CC=aarch64-none-linux-gnu-gcc \ CXX=aarch64-none-linux-gnu-g++ -
--host=arm-linux-gnueabihf:指定目标平台为 ARM。 -
--prefix=/home/lxh/arm-libs/install:指定安装目录。 -
--with-ssl和--with-zlib:启用 SSL 和 zlib 支持。 -
CC和CXX:指定交叉编译器
编译和安装
make -j$(nproc)
make install
在 ARM 设备上运行 curl,验证是否正常工作。
testcurl.c
#include <curl/curl.h>
int main(void)
{
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if (curl)
{
curl_easy_setopt(curl, CURLOPT_URL, "https://www.baidu.com");
res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
makefile
# 交叉编译工具链
CC = arm-linux-gnueabihf-gcc
# curl 库的安装路径
CURL_DIR = /home/lxh/arm-libs/install
# 编译选项
CFLAGS = -I$(CURL_DIR)/include
LDFLAGS = -L$(CURL_DIR)/lib -lcurl -lssl -lcrypto
# 目标可执行文件
TARGET = curl_example
# 源文件
SRCS = testcurl.c
# 默认目标
all: $(TARGET)
# 编译规则
$(TARGET): $(SRCS)
$(CC) $(CFLAGS) -o $(TARGET) $(SRCS) $(LDFLAGS)
# 清理
clean:
rm -f $(TARGET)

cd ~/Downloads/openssl-1.1.1b
make clean
make distclean
./Configure linux-aarch64 \
--prefix=/home/lxh/Downloads/rk356x_linux_release_v1.3.1/arm-libs/install \
--cross-compile-prefix=aarch64-none-linux-gnu- \
shared \
no-asm \
-fPIC
make -j$(nproc)
make install
ls -la /home/lxh/Downloads/rk356x_linux_release_v1.3.1/arm-libs/install/lib/libssl.so*
cd ~/Downloads/curl-7.64.1
# 完全清理
make distclean
# 静态编译配置
./configure --host=aarch64-none-linux-gnu \
--prefix=/home/lxh/Downloads/rk356x_linux_release_v1.3.1/arm-libs/install \
--with-ssl=/home/lxh/Downloads/rk356x_linux_release_v1.3.1/arm-libs/install \
--disable-ldap \
--disable-ldaps \
--enable-static \
--disable-shared \
CC=aarch64-none-linux-gnu-gcc \
CXX=aarch64-none-linux-gnu-g++
make -j$(nproc)
make install
# 验证
file /home/lxh/Downloads/rk356x_linux_release_v1.3.1/arm-libs/install/bin/curl


移植ARM详细步骤&spm=1001.2101.3001.5002&articleId=145864280&d=1&t=3&u=ded1ede01a074ab3b8276d7e2b17b62d)
5674

被折叠的 条评论
为什么被折叠?



