交叉编译openssl及curl

发布于:2025-03-08 ⋅ 阅读:(125) ⋅ 点赞:(0)

操作环境:Ubuntu20.04

IDE工具:Clion2020.2

curl下载地址:https://curl.se/download/

openssl下载地址:https://openssl-library.org/source/old/index.html

直接交叉编译curl会报错找不到openssl,所以需要先交叉编译openssl

1. 交叉编译openssl

openssl源码文件夹建立脚本build.sh,其中cross-compile-prefix填入交叉编译工具链的前缀(包括前面的绝对路径),然后在这个openssl路径下运行build.sh即可。

  # 设置编译文件夹、安装文件夹
  build_dir=$PWD/build
  install_dir=$PWD/dir
  mkdir -p $build_dir
  
  cd $build_dir
  # 清除之前的编译内容
  make clean
  ../config no-asm shared no-async \
    --prefix=$install_dir \
    --cross-compile-prefix=/usr/local/crosstoolchains/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
  
  # 递归替换当前目录及子目录所有 Makefile 中的 -m64
  find . -name "Makefile" -exec sed -i 's/-m64//g' {} \;
  
  # 编译并安装
  make -j $(nproc)
  make install

在这里插入图片描述

运行完成,openssl源码文件夹内会出现builddir文件夹,所有的编译内容会存放在build文件夹,最终编译出来的库文件、可执行文件被安装到了dir文件夹里面

在这里插入图片描述

2. 交叉编译curl

  1. 设置clion的交叉编译工具链

在这里插入图片描述

在这里插入图片描述

  1. 接下来设置cmake选项,将以下的两条内容都放在cmake选项里面即可,其中-DOPENSSL_ROOT_DIR是找安装openssl的根目录,也就是上一步刚刚编译出来的openssl的安装文件夹,-DCMAKE_INSTALL_PREFIX决定curl安装到哪里。
-DOPENSSL_ROOT_DIR=/home/xjgc/test/openssl-1.1.1w/dir
-DCMAKE_INSTALL_PREFIX=./target

在这里插入图片描述

  1. 点击curl文件夹中的CMakeLists.txt,右键加载cmake项目,并选择curl进行编译

在这里插入图片描述

在这里插入图片描述

如果在cmake-build-debug文件夹下执行make install,那么将会被安装到我们指定的安装路径(-DCMAKE_INSTALL_PREFIX参数指定的)

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到