随笔:交叉编译libcurl库支持HTTPS
来源:互联网 发布:网络监控机软件 编辑:程序博客网 时间:2024/05/21 07:09
提供:
openssl和libcurl库百度云链接:
https://pan.baidu.com/s/1ge2ZkMB
提取码:h29q
目的:
需要的编译结果:mips下的libcurl库支持HTTPS
关键:libcurl库支持https协议,需要先编译安装openssl库
配置:
配置环境变量 sudo vim /etc/profile
最后一行添加以下内容:
PATH=/usr/local/arm/4.4.3/bin:$PATH
执行source /etc/profile
echo $PATH
多了一条自己添加的mips交叉编译工具链
/usr/local/mips/tool_chain/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
mipsel-linux-uclibc-gcc -v
查看系统配置的编译工具
实战:
交叉编译libcurl时,直接运行./configure
如上图,看第五行,SSL support为no看最后一行,支持的协议中没有HTTPS,由此可知,我们编译出来的curl库并不支持https协议。
方案一:
./configure –with-ssl ( 加上ssl参数,因为默认./configure时没带该参数,所以导致编出来的curl库不支持https)
ssl百度了下,全名Secure Socket Layer
如下图,协议支持HTTPS,SSL support 为enabled
解决了curl库支持HTTPS的问题,因为交叉编译的curl库需为mips平台的,命令./configure –with-ssl 交叉编译的库默认为x86平台。所以,我们加了参数,–host=mipsel-linux CC=tool_chain/bin/mipsel-linux-uclibc-gcc 。
那么,问题就来了
./configure –with-ssl –host=mipsel-linux CC=/usr/local/mips/tool_chain/bin/mipsel-linux-uclibc-gcc 一套完整的命令敲下去后,curl库为mips平台的,但是却又不支持HTTPS了(应该是我的openssl库为x86的,导致openssl和libcurl库不兼容)。
怎么办呢?看configure配置文件,如下图
–with-ssl有个默认的寻找ssl路径 。
方案二:
先编译安装openssl库,然后再编译curl库。
编译openssl库,
第一步:
--cross-compile-prefix=/usr/local/mips/tool_chain/bin/mipsel-linux-uclibc- --prefix=/usr/local/ssl no-asm shared
–cross-compile-prefix为交叉编译工具链,–prefix为指定的安装目录。注意指定的目录为/usr/local/ssl,同上面curl库的–with-ssl参数default路径,no-asm为在交叉编译过程中不使用汇编代码加速编译过程,shared生成动态链接库
第二步:
然后修改Makefile
PLATFORM=mipsCONFIGURE_ARGS=mips
-m64相关的去掉(x86机器会有)
第三步:
make
make install
安装完成后,我们去libcurl库完成交叉编译。
./configure --with-ssl=/usr/local/ssl --host=mipsel-linux CC=/usr/local/mips/tool_chain/bin/mipsel-linux-uclibc-gcc
make时可能会有以下错误:
checking for “/dev/urandom”… configure: error: cannot check for file existence when cross compiling
交叉编译时加上以下参数即可。
--with-random=/dev/urandom
最后完整的交叉编译libcurl库命令为:
./configure --with-ssl=/usr/local/ssl --host=mipsel-linux CC=/usr/local/mips/tool_chain/bin/mipsel-linux-uclibc-gcc --with-random=/dev/urandom
最终结果如下:
- 随笔:交叉编译libcurl库支持HTTPS
- android支持https通讯,交叉编译 libcurl libnghttp2 oponssl
- libcurl编译,支持https
- libcurl 支持 openssl 交叉编译 mips rt5350
- Ubuntu+NDK编译支持HTTPS的libcurl
- vs 支持https libcurl静态库
- libcurl如何支持https
- 使用libcurl 支持https
- libcurl 如何支持https
- libcurl 如何支持https
- 交叉编译libcurl
- 在Ubuntu和Windows上编译libcurl支持https
- libcurl windows下编译和post使用及https支持
- libcurl库的使用支持http、https、ftp上传下载
- curL 下载Https 网页的内容 编译的libcurl 需支持ssl
- [安卓]成功在android平台用ndk上编译libcurl+openssl支持https
- Cocos2d-x libcurl如何支持https
- barrier_breaker14.07交叉编译libcurl并打包
- 51NOD 1050 循环数组最大子段和
- 多重背包 java实现
- 053
- jdbc查询的通用方法的简单版
- 如何使用git将分支branch合并到主分支master上
- 随笔:交叉编译libcurl库支持HTTPS
- Winscp使用时Cannot create remote file怎么解决
- JS小结-DOM与BOM区别
- JNI实现Java调用C++程序(Linux 64位)
- 学生信息系统学习心得六、课程设置模块的创建
- 算法基础-->排序查找
- 总结Unity 初学者容易犯的编译与运行时错误(第二部分)
- bow词袋模型
- 日常问题记录