交叉编译libcurl并支持openssl

1. 编译openssl

下载openssl openssl地址

我使用的版本是 openssl-1.1.0l

配置openssl 生成makefile

./config  no-asm no-async shared  --prefix=/opt/openssl-lib  --cross-compile-prefix=arm-linux-

参数解析:

  • no-asm: 在交叉编译过程中不使用汇编代码代码加速编译过程.原因是它的汇编代码是对arm格式不支持的
  • shared: 生成动态连接库
  • no-async: 交叉编译工具链没有提供GNU C的ucontext库
  • prefix=: 安装路径,编译完成install后将有bin,lib,include等文件夹
  • cross-compile-prefix=: 交叉编译工具

配置完后修改 Makefile中两处 -m64 把这个去掉

接下来执行 make,编译完后如下:

在这里插入图片描述
然后接着执行 make install
因为我这里是安装在了**/opt/** 目录下所以要sudo make install
openssl到这里就编译安装完了

在这里插入图片描述

2. 编译安装libcurl

  • 下载libcurl libcurl 或者用wget下载
    wget http://curl.haxx.se/download/curl-7.50.0.tar.gz
    我用的版本是 curl-7.50.0

  • 配置

./configure --prefix=/opt/libcurl-lib  --host=arm-linux  CC=arm-linux-gcc CXX=arm-linux-g++ -with-ssl=/opt/openssl-lib --enable-shared --enable-static --disable-dict --disable-ftp CPPFLAGS="-I/opt/openssl-lib -I/opt/openssl-lib/include" LDFLAGS="-L/opt/openssl-lib/lib" LIBS="-ldl -lssl -lcrypto"  

配置完后的输出如下:
交叉编译libcurl并支持openssl_第1张图片

  • 然后执行 make
  • 编译完没错的话执行 make install安装即可
    在这里插入图片描述
    再把头文件复制出来即可
    在这里插入图片描述

3. 最后

编译libcurl的过程中来来回回试用了几个版本,中间遇到一些莫名其妙的错误,最后使用这两个版本才编译出来,做嵌入式就是这样,没有固定的硬件环境和平台,相同的库和代码在不同的环境下使用都不一样,每次的环境配置、库移植都得折腾一番,大家可以使用我上面用的两个版本

更多精彩内容欢迎关注小熊嵌入式
在这里插入图片描述

你可能感兴趣的:(Linux,嵌入式)