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"
配置完后的输出如下:
- 然后执行
make
- 编译完没错的话执行
make install
安装即可
再把头文件复制出来即可
3. 最后
编译libcurl的过程中来来回回试用了几个版本,中间遇到一些莫名其妙的错误,最后使用这两个版本才编译出来,做嵌入式就是这样,没有固定的硬件环境和平台,相同的库和代码在不同的环境下使用都不一样,每次的环境配置、库移植都得折腾一番,大家可以使用我上面用的两个版本
更多精彩内容欢迎关注小熊嵌入式