MinGW下编译openssl, json-c
目的:在windows环境下,编译开源库openssl
环境:windows 10 ,Mingw及自带msys工具,openssl-1.0.2j
工具主要使用MinGW(含msys1.0), IDE选用CodeBlock 13.12
下载OpenSSL源码, 这里以openssl-1.0.2j.tar.gz版本为例。下载json-c源码
OpenSSL编译
- 启动msys的命令行工具msys.bat, 解压缩 openssl-1.0.2j.tar.gz
cd / # 根目录为 MinGW\msys\1.0\
mkdir workShop # 新建工作目录, 在win下把压缩包移进来
cd workShop
tar -zxvfopenssl-1.0.2j.tar.gz # 解压
cd openssl-1.0.2j
- 编译方法主要参见INSTALL文件或INSTALL.WIN32文件, 这里是为了编译在win系统中用的, 所以要参考后者。
找到说明文件INSTALL.WIN32中的 GNU C (MinGW/MSYS) 小节, 依次执行命令:
$ ./config [需要动态链接库的话, 加参数 shared]
[等待...]
$ make
[长长的等待...]
$ make test
[长长长的等待...]
编译完以后比较坑, 完全不像INSTALL.WIN32文件所说有什么inc32 out32之类的文件夹, 所有的文件都是和源文件在一起乱放的, 想不出好办法分开, 只能借用神器BC(Beyond Compare)了。把现在的目录重命名为openssl-1.0.2jj,把源文件压缩包重新解压了一遍。用BC比较两个目录,把孤立的文件单独复制到一个新目录openssl保存。如下图所示:


将openssl目录复制到需要的项目源文件目录中,编辑项目CMakeLists.txt, 将 ${CMAKE_CURRENT_SOURCE_DIR}/openssl/include 插入 INCLUDE_DIRECTORIES 中
将 ${CMAKE_CURRENT_SOURCE_DIR}/openssl/apps 插入 link_directories 中。
使用cmake-gui重建CodeBlock项目,用CodeBlock编译项目。
在CodeBlock中编译通过。下一步将是解决mysql.h的问题,参考。
json-c 编译
解压源码,重命名.h.WIN32的来个头文件为.h, 修改CMakeLists.txt第27行:
${CMAKE_CURRENT_BINARY_DIR}/include/config.h
改为:
./config.h
打开cmake-gui, Configure, 如下图选择, Finish:

结束后点Generate, Done!

用CodeBlock打开上面json-c/cm路径下的json-c.cbp文件, 点齿轮编译(Ctrl-F9), 没有红字信息就好, 蓝色的仅仅是些可以忽略的警告(warning)

完成后, json-c/cm路径下的libjson-c.a文件即为所需的库文件,把它和json-c目录下的json.h复制到所需的项目路径即可!
Over!
转自:https://www.jianshu.com/p/d9c285709c2d
Windows7下使用mingw编译openssl
首先参考这篇文章安装mingw/minsys:
http://blog.csdn.net/ubuntu64fan/article/details/8918808
下面开始编译openssl for windows:
打开minsys命令行工具:
编译32位的版本:
- # source /local32/etc/profile.local
- # cd $SRC_DIR
- # wget ftp://ftp.openssl.org/source/openssl-1.0.2d.tar.gz
- # tar -zxf openssl-1.0.2d.tar.gz
- # cd openssl-1.0.2d
- # ./config shared
- # make -j 4
- # make test
- # make install
编译64位的版本:
- # source /local64/etc/profile.local
- <pre name="code" class="html"># cd $SRC_DIR
- # wget ftp://ftp.openssl.org/source/openssl-1.0.2d.tar.gz
- # tar -zxf openssl-1.0.2d.tar.gz
- # cd openssl-1.0.2d
- # perl Configure mingw64 shared --prefix=/usr/local/win64
- # make -j 4
- # make install</pre>
最后的文件位置在:
C:\DEVPACK\MinGW\msys\1.0\local\win64
参考下面的文章使用openssl API:
http://www.codeproject.com/Articles/1016357/OpenSSL-Tour-for-Win-Developer
转自:http://blog.csdn.net/ubuntu64fan/article/details/49865237
MinGW下编译openssl, json-c的更多相关文章
- windows & gcc & mingw & mysy 编译 openssl
今天有一个项目需要使用到 https, 以前一直用的都是http请求, 用 socket() 实现 https 请求我还真是头一回遇到. 先网上搜索了一下相关资料,明白了 https 相比较 http ...
- [转] Windows下编译OpenSSL
简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...
- 在Windows下编译OpenSSL(VS2005和VC6)
需要说明的是请一定安装openssl-0.9.8a . openssl-1.0.0我没有编译成功. 如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1.安装Activ ...
- Windows下编译OpenSSL(使用VS2013)
简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...
- Linux下编译OpenSSL
编译环境 操作系统: Red Hat Enterprise Linux Server release 5.4 64-bit 编译工具: gcc (GCC) 4.1.2 20080704 (Red Ha ...
- VC环境下编译OpenSSL(仅仅是个示例,网上还有许多相关文章)
VC环境OpenSSL安装以及编程过程 SSL就是Secure Sockets Layer,是一种安全套接字协议,详情请参考链接中的介绍. 配置过程中需要生成一些mak文件,这些生成代码用perl脚本 ...
- 在MinGW下编译ffmpeg
因为需要使用ffmpeg的相关库和执行文件,所以需要编译最新的ffmpeg代码.为了能在编译成Windows native执行程序(需要在.net中调用该执行程序),这里我们使用MinGW. 1,安装 ...
- libuv在mingw下编译
libuv是一个基于事件的异步IO库,来自node.js项目. libuv提供了Makefile.mingw,供MingW编译,由其中的规则我们可以得到一下编译步骤: cd libuv/src gcc ...
- Windows下编译openssl
依赖工具: 1.VS 2.perl 编译方法: release: :\> 切换到openssl目录 :\> perl Configure VC-WIN32 no-asm --prefix= ...
随机推荐
- ios支付宝问题整合
1. 报错:rsa_private read error : private key is NULL 原因:私钥没有转成PKCS8 解决方法: 1)在RSADataSigne ...
- 求最大连续和——dp
输入一组整数,求出这组数字子序列和中最大值.也就是仅仅要求出最大子序列的和,不必求出最大的那个序列. 比如: 序列:-2 11 -4 13 -5 -2,则最大子序列和为20. 序列:-6 2 4 -7 ...
- 开源企业IM-免费企业即时通讯-ENTBOOST V2014.180 Windows版本号正式公布
ENTBOOST,VERSION 2014.180 Linux版本号公布,主要添加企业IM应用集成功能,完好安卓SDK功能及部分BUG修正. 下一版本号公布时间.7月15日.敬请关注. ENTBOOS ...
- 坊间流传着的关于谷歌大牛Jeff Dean的传说
Jeff Dean,Google的软件架构天才.Google大型并发编程框架Map/Reduce作者. 在Google,公司最顶尖的编程高手Jeff Dean曾发明过一种先进的方法,该方法可以让一个程 ...
- Atitit gui控件定位解决方案
Atitit gui控件定位解决方案 1.1. 但是AUTOIT没有找图功能..可以请大侠们写一份这个UDF出来吗?1 1.2. ahk1 1.3. Java +opencv 模板匹配2 1.1. 但 ...
- lua -- table.nums
table.nums 计算表格包含的字段数量. 格式: count = table.nums(表格对象) Lua 的“#”操作可以取得表格的长度,但仅限从 开始连续数字为索引的表格.table.num ...
- CCParallaxNode
// 创建cat精灵 CCSprite* cat = CCSprite::create("Image\\grossini.png"); //change the transform ...
- 乐观锁的一种实现方式—CAS
线程安全 众所周知,Java是多线程的.但是,Java对多线程的支持其实是一把双刃剑.一旦涉及到多个线程操作共享资源的情况时,处理不好就可能产生线程安全问题.线程安全性可能是非常复杂的,在没有充足的同 ...
- MyBean - 单实例插件改进和VCL插件的改进
BeanFactory中添加VclOwners:TComponent属性, 在getBean创建VCL插件的时候,Tcomponent.Create(VclOwners) 这样在清理DLL时就会释 ...
- Oracle生成流水号函数
一.参考 1:日期范围上 smalldatetime的有效时间范围1900/1/1~2079/6/6 datetime的有效时间范围1753/1/1~9999/12/31 2:精准度上 smallda ...