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编译

参考文章

  1. 启动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 
  1. 编译方法主要参见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位的版本:

 

[html]  view plain  copy
 
 print?
  1. # source /local32/etc/profile.local  
  2.   
  3. # cd $SRC_DIR  
  4.   
  5. # wget ftp://ftp.openssl.org/source/openssl-1.0.2d.tar.gz  
  6.   
  7. # tar -zxf openssl-1.0.2d.tar.gz  
  8.   
  9. # cd openssl-1.0.2d  
  10.   
  11. # ./config shared  
  12.   
  13. # make -j 4  
  14.   
  15. # make test  
  16.   
  17. # make install  

 

编译64位的版本:

 

[html]  view plain  copy
 
 print?
  1. # source /local64/etc/profile.local  
  2.   
  3. <pre name="code" class="html"># cd $SRC_DIR  
  4.   
  5. # wget ftp://ftp.openssl.org/source/openssl-1.0.2d.tar.gz  
  6.   
  7. # tar -zxf openssl-1.0.2d.tar.gz  
  8.   
  9. # cd openssl-1.0.2d  
  10.   
  11. # perl Configure mingw64 shared --prefix=/usr/local/win64  
  12.   
  13. # make -j 4  
  14.   
  15. # 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值