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

使用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
posted @   findumars  Views(1384)  Comments(0Edit  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2016-02-02 JAVA技术专题综述之线程篇(1)
2016-02-02 彻底明白Java的IO系统
2016-02-02 在Delphi中开发使用多显示器的应用程序(MonitorCount和DefaultMonitor)
2016-02-02 Qt Charts的简单安装与使用
2016-02-02 解决QT Creator在Linux下的输入法问题
2016-02-02 VC6.0 导入资源崩溃
2016-02-02 Qt Creator 黑色主题配置
点击右上角即可分享
微信分享提示