使用mingw 对libcURL,openSSL,zLib交叉编译

 
将三个库解压到同一目录下 比如取目录名为 "source" 的目录
 
提前安装active-perl
配置好mingw和msys环境
否则编译会出错
 
- source
+ curl-xxx
+ openssl-1.0.xx
+ zlib-xxx
 
 
1第一步 (在msys环境中执行)
编译openssl 依次输入四个指令
./config -t
./config threads shared no-capieng
make depend
make
 
会生成 libcrypto.a libssl.a libssl.dll.a libcrypto.dll.a 这四个文件和相应的dll文件,
不过编译期间不需要dll文件,也不需要上述四个*.a文件的前两个,在openssl目录下建立两个文件夹 "out" "outinc"
把libssl.dll.a libcrypto.dll.a拷贝到out文件夹里,重命名为"libssl32.a" "libeay32.a"
把openssl下的include文件夹里的openssl文件夹拷贝进outinc里
 
2第二步 (在msys中执行)
编译zLib
输入指令
cp win32/makefile.gcc makefile.gcc
mingw32-make -f makefile.gcc
 
3第三步(修改编译配置文件,即我要交叉编译指定其它库的路径)
进入curl的lib文件夹找makefile.m32用notepad++打开,当然用其它打开也行,不过不推荐windows自带的notepad
 
找到 OPENSSL_PATH = ../../openssl-xxxxxxx
 ZLIB_PATH = ../../zlib-xxxxxxx
修改为你实际的文件夹名
比如我的
 OPENSSL_PATH = ../../openssl-1.0.0g
 ZLIB_PATH = ../../zlib-1.2.5
 
4.第四步 (在msys环境下)
交叉编译libcurl
mingw32-make mingw32-ssl-zlib
生成libcurl.a libcurldll.a libcurl.dll
把libcurl.a删掉(我觉得不需要),用libcurldll.a替换掉它,改名为libcurl.a
 
 
5.整理
 把openssl/out里的*.a文件 第四步的那个*.a文件取出来.zlib里的*.a文件取出来放到一个lib文件夹里(自己建)
 把libz.dll libeay.dll libssl.dll libcurl.dll取出来放到bin目录里,自己建
 把openssl头文件,libcurl头文件取出,放到include里(自己建,zlib好像也有)
 
http://bhlzlx.blog.51cto.com/3389283/935370

使用mingw 对libcURL,openSSL,zLib交叉编译的更多相关文章

  1. windows下libcurl与zlib和ssl共同编译

    下载了curl 7.37,在project里有各个版本VS对应的项目文件,我们选择合适的打开即可以编译,根据不同的项目配置输出想要的库,比如可以切换多种SSL库,dll/lib,debug/relea ...

  2. 利用openssl管理证书及SSL编程第3部分:将MinGW编译的openssl dll导出def和lib供MSVC使用

    将MinGW编译的openssl dll导出def和lib供MSVC使用 前面我们用mingw把openssl 编译成了动态库,得到下面2个dll文件: libeay32.dll ssleay32.d ...

  3. windows & gcc & mingw & mysy 编译 openssl

    今天有一个项目需要使用到 https, 以前一直用的都是http请求, 用 socket() 实现 https 请求我还真是头一回遇到. 先网上搜索了一下相关资料,明白了 https 相比较 http ...

  4. 在Linux下使用MinGW静态交叉编译带有zlib的libcurl(包括交叉编译openssl,即--cross-compile-prefix=i686-w64-mingw32- mingw)

    在Linux下使用MinGW静态交叉编译带有zlib的libcurl libcurl是一个跨平台的.易用的.强大的网络库.在大部分Linux发行版中都有编译好的二进制包可供使用,Mac系统更是将其作为 ...

  5. Windows 编译libcurl(openssl+zlib)(使用VC编译)

    libcurl主要功能就是用不同的协议连接和沟通不同的服务器,如果使用HTTPS,需要OpenSSL libcurl https://curl.haxx.se/download.html 下载Sour ...

  6. libcurl.dll 7.60.0静态库包含openssl/zlib

    最近做个QT的小程序需要使用LIBCURL支持HTTPS,结果查资料发现官方默认的是不支持的,需要手动重新编译,编译的时候加入SSL支持. 看着就好麻烦的样子, 找了一圈,还真有现成的,但是现在写程序 ...

  7. 关于openssl的交叉编译

    最近有个项目用到openssl,于是去openssl的官方网站上下载了最新的版本,v1.1.1b版本. 解压之后,发现配置编译,可以使用./config或者./Configure来完成. 网上也查了一 ...

  8. MinGW下编译openssl, json-c

    目的:在windows环境下,编译开源库openssl 环境:windows 10 ,Mingw及自带msys工具,openssl-1.0.2j 工具主要使用MinGW(含msys1.0), IDE选 ...

  9. windows下libcurl+openssl编译与使用配置

    之前使用过libcurl, 编译也是最简单的版本, 不需要openssl, 即不需要支持https, 所以编译和使用都很正常. 但要使用openssl就很麻烦了, 我花了差不多两天去编译和调用, 记录 ...

随机推荐

  1. 探险 - 树型dp(背包)/多叉树转二叉树

    题目大意: 国家探险队长 Jack 意外弄到了一份秦始皇的藏宝图,于是,探险队一行人便踏上寻宝之旅,去寻找传说中的宝藏. 藏宝点分布在森林的各处,每个点有一个值,表示藏宝的价值.它们之间由一些小路相连 ...

  2. 【codeforces 779A】Pupils Redistribution

    [题目链接]:http://codeforces.com/contest/779/problem/A [题意] 让你把两个组的5个人的数目都变成一样的. 支持交换操作; 问你最少需要交换几次. [题解 ...

  3. 人生不过一个字【Life is but a word】

    有人说,人生是一出悲悲喜喜的戏,是一首飘飘忽忽的歌,是一次上去又下来的登山运动,是一场明明灭灭的烟花……是的,有道理,但听起来,太玄虚:悟起来,太深远:做起来,太复杂.              我说 ...

  4. git记不住用户名和密码

    以前我是用svn的 , 我也是最近才用的git 虽然git 有GUI界面  , 但是我觉得还是不如svn 最开始使用git的时候我们直接clone项目的时候可能会设置全局的账号和密码 , 但是我重装系 ...

  5. gdal的矢量栅格化接口GDALRasterizeLayers使用(一)

    作者:朱金灿 来源:http://blog.csdn.net/clever101 gdal库提供了一个矢量栅格化接口函数GDALRasterizeLayers.今天让我们学习一下这个接口函数的使用.该 ...

  6. 推荐一些C#相关的网站和书籍

    1.http://msdn.microsoft.com/zh-CN/ 微软的官方网站,C#程序员必去的地方.那里有API开发文档,还有各种代码.资源下载. 2.http://social.msdn.m ...

  7. DM365 IPNC软件架构具体解释

    于2013在上半场 - 年DM365.DM368的IPNC(网络摄像机)与稳定性测试工作产品结束. 1.简单介绍: TI针对TMS320DM365.DM368进行了DVR和IPNC的应用方案參考.DV ...

  8. gdal1.10编译经验

    作者:朱金灿 来源:http://blog.csdn.net/clever101 集成了一些扩展库,使用makefile编译,出现了一个链接错误: libcmt.lib(crt0.obj): erro ...

  9. centos下载安装mysql,并设置远程访问

    思路 获取安装文件→配置好路径→安装→设置权限→处理常见的问题. 1.下载 先建议去官网看看https://dev.mysql.com/,然后根据自己的常识找到下载路径.同时也找到最新版本. 下载方式 ...

  10. DELPHI +ClientDataSet+DBGRIDEH 进行排序

    DELPHI +ClientDataSet+DBGRIDEH  进行排序因为使用了DBX+ClientDataSet,所以排序显得简单些,只需要设定几个属性就OK了.1.DbGridEH 中设定:Op ...