交叉编译Openssl库及curl库

一、交叉编译openssl库

1、到官网下载openssl(官网地址:http://www.openssl.org/source)

2.解压openssl-1.1.1k.tar.gz并修改文件名为openssl

3.进入openssl文件夹

4.配置生成makefile文件

sudo ./config no-asm shared no-async --prefix=/home/w/ssl --cross-compile-prefix=/opt/atk-dlrk3588-toolchain/bin/aarch64-buildroot-linux-gnu-

注:(指定了生成的文件目录为:/home/w/ssl,指定了目标平台的交叉编译链工具前缀为:/opt/atk-dlrk3588-toolchain/bin/aarch64-buildroot-linux-gnu-  ,这样在使用makefile时不用重复指定交叉编译链的路径) 

5.修改openssl文件夹下刚生成的makefile文件,并删除掉两个-m64,否则编译报错

sudo chmod 777 Makefile

6.使能交叉工具编译链

source /opt/atk-dlrk3588-toolchain/environment-setup
aarch64-buildroot-linux-gnu-gcc -v

 7.编译并安装

sudo make
sudo make install

 8.生成文件均在ssl文件夹下

 二、交叉编译curl库

1、到官网下载curl

2.解压curl-8.9.1.tar.xz并修改文件名为curl

3.进入curl文件夹

4.配置生成makefile文件

CPPFLAGS="-I/home/w/openssl_arm/include" 
LDFLAGS="-L/home/w/openssl_arm/lib" 
LIBS="-ldl" 
sudo ./configure --host=arm-linux CC=/opt/atk-dlrk3588-toolchain/bin/aarch64-buildroot-linux-gnu-gcc CXX=/opt/atk-dlrk3588-toolchain/bin/aarch64-buildroot-linux-gnu-g++ \
--with-ssl=/home/w/openssl_arm/ --enable-shared --disable-static --disable-dict --disable-ftp \ --disable-imap --disable-ldap --disable-ldaps --disable-pop3 --disable-proxy \
--disable-rtsp --disable-smtp --disable-telnet --enable-tftp  \
--without-ca-bundle --without-gnutls  --without-librtmp \
--without-libssh2  --without-zlib  --without-libpsl \
--prefix=/home/w/curl_arm/

 注:1.指定了需要的openssl库文件的路径。2.指定了交叉编译链工具(aarch64-buildroot-linux-gnu-gcc和aarch64-buildroot-linux-gnu-g++)。3.指定了只安装动态库。4.指定了生成的文件夹路径为(/home/w/curl_arm)。

5.使能交叉工具编译链

source /opt/atk-dlrk3588-toolchain/environment-setup
aarch64-buildroot-linux-gnu-gcc -v

6.编译并安装

sudo make
sudo make install

7. 生成文件均在curl_arm文件夹下

8.Ubuntu下修改curl_arm文件夹下面所有文件的权限

sudo chmod -R 777 curl_arm

  三、交叉编译glog库

1.进入glog文件夹

2.进入toolchains文件夹,复制一份gcc-cxx11.cmake,更名为glog_arm.cmake

3.修改glog_arm.cmake的内容如下

SET(CMAKE_SYSTEM_NAME Linux)
 
# set compiler
set(CMAKE_C_COMPILER /opt/atk-dlrk3588-toolchain/bin/aarch64-buildroot-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER /opt/atk-dlrk3588-toolchain/bin/aarch64-buildroot-linux-gnu-g++)
 
# set c++ standard
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

4.使能交叉工具编译链

source /opt/atk-dlrk3588-toolchain/environment-setup
aarch64-buildroot-linux-gnu-gcc -v

5.回到glog文件夹下,执行命令

sudo cmake  -DCMAKE_INSTALL_PREFIX=/home/w/arm/glog_arm -DCMAKE_TOOLCHAIN_FILE="${PWD}/toolchains/glog_arm.cmake"

 6.执行sudo make 进行编译,后执行sudo make install 命令进行安装 

sudo make 
sudo make install

7. 生成文件均在/home/w/arm/glog_arm文件夹下

 四、交叉编译mosquitto库

注意:安装mosquitto库之前需要安装openssl库和cjson库

1.安装cjson

sudo cmake -DCMAKE_INSTALL_PREFIX=/home/w/arm/cjson_arm -DCMAKE_C_COMPILER=/opt/atk-dlrk3588-toolchain/bin/aarch64-buildroot-linux-gnu-gcc -DCMAKE_CXX_COMPILER=/opt/atk-dlrk3588-toolchain/bin/aarch64-buildroot-linux-gnu-g++
sudo make
sudo make install

2.进入mosquitto文件夹

3.修改config.mk,指定依赖库的头文件路径、库路径,并且指定安装目。
在 config.mk 的 146 行,在ARCH:=$(shell uname -p)语句下面添加下面语句:

# 指定ssl库、cJSON库的头文件和库文件
CFLAGS += -I/home/w/arm/openssl_arm/include/openssl  -I/home/w/arm/cjson_arm/include
LDFLAGS+= -L/home/w/arm/openssl_arm/lib -L/home/w/arm/cjson_arm/lib -lssl -lcrypto -dl
# 指定mqtt库的安装目录
DESTDIR=/home/w/arm/mqtt_arm 

3.使能交叉工具编译链 

source /opt/atk-dlrk3588-toolchain/environment-setup
aarch64-buildroot-linux-gnu-gcc -v

4.编译安装

sudo make CC=/opt/atk-dlrk3588-toolchain/bin/aarch64-buildroot-linux-gnu-gcc CXX=/opt/atk-dlrk3588-toolchain/bin/aarch64-buildroot-linux-gnu-g++
sudo make install

 五、交叉编译jsoncpp库

1.进入jsoncpp文件夹,新建一个build文件夹和一个json_arm.cmake脚本文件

2.进入build文件夹,生成makefile文件

sudo cmake ../ -DCMAKE_TOOLCHAIN_FILE=./json_arm.cmake -DCMAKE_INSTALL_PREFIX=/home/w/arm/jsoncpp_arm -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=ON -DJSONCPP_WITH_TESTS=OFF -G "Unix Makefiles"

3.使能交叉工具编译链 

source /opt/atk-dlrk3588-toolchain/environment-setup
aarch64-buildroot-linux-gnu-gcc -v

4.编译安装

sudo make 
sudo make install

5. 生成文件均在/home/w/arm/jsoncpp_arm文件夹下

交叉编译openssl-1.1.1动态,你需要按照以下步骤进行操作: 1. 确保你的系统已经安装好交叉编译工具链。工具链通常由GNU Compiler Collection (GCC)和相关工具组成,负责将代码编译为目标架构所需的机器代码。 2. 下载openssl-1.1.1源代码包,并解压到本地目录中。 3. 进入解压后的源代码目录,打开命令行终端。 4. 设置交叉编译的环境变量。根据你的交叉编译工具链和目标架构的不同,设置对应的环境变量,例如CC、CROSS_COMPILE、AR等。 5. 执行配置命令,用来生成编译所需的Makefile。通常的配置命令为:./configure --prefix=目标安装路径。 6. 执行make命令进行编译,根据系统性能不同,编译时间可能会有所不同。 7. 执行make install命令,将编译好的动态安装到指定目录下。 8. 检查安装是否成功。在目标安装路径下查看是否存在libcrypto.so和libssl.so文件,这些文件就是编译生成的动态。 注意事项: - 在交叉编译过程中,可能会遇到一些问题,例如缺少相关依赖、环境变量错误等,需要根据具体情况进行解决。 - 如果你的目标架构是嵌入式设备或者特定平台,可能还需要进行额外的配置和调整才能正确交叉编译动态。 - 在进行交叉编译时,最好参考openssl官方文档或者相关教程,以确保正确的编译结果和使用方法。 以上就是关于如何交叉编译openssl-1.1.1动态的步骤和注意事项的回答,希望能对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值