前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >curl交叉编译方法

curl交叉编译方法

作者头像
coderhuo
发布2018-08-29 15:22:49
4.2K0
发布2018-08-29 15:22:49
举报
文章被收录于专栏:coderhuocoderhuocoderhuo

arm平台curl交叉编译方法。 基于curl + openssl + zlib 的方式组建arm上的https客户端,其中curl作为http客户端,openssl提供https支持,zlib负责处理gzip压缩的http报文。

编译目录结构如下:

目录结构图
目录结构图

其中curl-7.29.0、openssl-OpenSSL_1_0_2g和zlib-1.2.8是待编译的源码。libs用来存放编译出来的库以及头文件。

编译所需源码附件中列出,也可自行下载(最好从官网下)。

下面的例子中https_framework的全路径是/home/test/https_framework。

一、编译zlib:(版本zlib-1.2.8)

  1. 执行下面的命令生成makefile: ./configure --prefix=/home/test/https_framework/libs/zlib
  2. 由于zlib在生成makefile的时候不支持修改编译器选项,只好在makefile中修改: AR=ar RANLIB=ranlib 改成: AR=arm-linux-gnueabihf-ar RANLIB=arm-linux-gnueabihf-ranlib 然后全文搜索一下gcc, 全部替换成arm-linux-gnueabihf-gcc
  3. 执行make 命令编译
  4. 执行make install命令安装
  5. 生成的头文件、库都在/home/test/https_framework/libs/zlib目录下

二、编译openssl:(版本openssl-OpenSSL_1_0_2g)

  1. 执行下面的命令生成makefile: ./Configure linux-elf-arm linux:'arm-linux-gnueabihf-gcc' --prefix=/home/test/https_framework/libs/openssl x86用下面的命令 ./Configure linux-x86_64 --prefix=/home/test/https_framework/libs/openssl 如果提示编译前先make depend,可忽略。
  2. 在makefile中做如下修改: RANLIB= /usr/bin/ranlib --> RANLIB= arm-linux-gnueabihf-ranlib NM= nm --> NM= arm-linux-gnueabihf-nm
  3. 执行make 命令编译
  4. 执行make install命令安装
  5. 生成的头文件、库都在/home/test/https_framework/libs/openssl 目录下

三、编译curl:(版本curl-7.29.0)

  1. 执行下面的命令生成makefile: ./configure --with-ssl=/home/test/https_framework/libs/openssl --with-zlib=/home/test/https_framework/libs/zlib --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf --prefix=/home/test/https_framework/libs/curl/ --enable-shared=0 其中 –enable-shared=0 说明只编译静态库 –with-ssl= 指定openssl的安装路径 –with-zlib= 指定zlib的安装路径
  2. configure执行完毕后输出配置信息,注意查看openssl和zlib是否使能: curl version: 7.29.0 SSL support: enabled (OpenSSL) SSH support: no (–with-libssh2) zlib support: enabled
  3. 执行make 命令编译
  4. 执行make install命令安装
  5. 生成的头文件、库都在/home/test/https_framework/libs/curl/ 目录下
  6. 编译x86平台下的库会默认开启openssl和zlib选项,可以通过--without-ssl和--without-zlib 分别禁止掉
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-06-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、编译zlib:(版本zlib-1.2.8)
  • 二、编译openssl:(版本openssl-OpenSSL_1_0_2g)
  • 三、编译curl:(版本curl-7.29.0)
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档