目的:在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位的版本:

  1. # source /local32/etc/profile.local
  2. # cd $SRC_DIR
  3. # wget ftp://ftp.openssl.org/source/openssl-1.0.2d.tar.gz
  4. # tar -zxf openssl-1.0.2d.tar.gz
  5. # cd openssl-1.0.2d
  6. # ./config shared
  7. # make -j 4
  8. # make test
  9. # make install

编译64位的版本:

  1. # source /local64/etc/profile.local
  2. <pre name="code" class="html"># cd $SRC_DIR
  3. # wget ftp://ftp.openssl.org/source/openssl-1.0.2d.tar.gz
  4. # tar -zxf openssl-1.0.2d.tar.gz
  5. # cd openssl-1.0.2d
  6. # perl Configure mingw64 shared --prefix=/usr/local/win64
  7. # make -j 4
  8. # 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的更多相关文章

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

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

  2. [转] Windows下编译OpenSSL

    简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...

  3. 在Windows下编译OpenSSL(VS2005和VC6)

    需要说明的是请一定安装openssl-0.9.8a .  openssl-1.0.0我没有编译成功. 如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1.安装Activ ...

  4. Windows下编译OpenSSL(使用VS2013)

    简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...

  5. Linux下编译OpenSSL

    编译环境 操作系统: Red Hat Enterprise Linux Server release 5.4 64-bit 编译工具: gcc (GCC) 4.1.2 20080704 (Red Ha ...

  6. VC环境下编译OpenSSL(仅仅是个示例,网上还有许多相关文章)

    VC环境OpenSSL安装以及编程过程 SSL就是Secure Sockets Layer,是一种安全套接字协议,详情请参考链接中的介绍. 配置过程中需要生成一些mak文件,这些生成代码用perl脚本 ...

  7. 在MinGW下编译ffmpeg

    因为需要使用ffmpeg的相关库和执行文件,所以需要编译最新的ffmpeg代码.为了能在编译成Windows native执行程序(需要在.net中调用该执行程序),这里我们使用MinGW. 1,安装 ...

  8. libuv在mingw下编译

    libuv是一个基于事件的异步IO库,来自node.js项目. libuv提供了Makefile.mingw,供MingW编译,由其中的规则我们可以得到一下编译步骤: cd libuv/src gcc ...

  9. Windows下编译openssl

    依赖工具: 1.VS 2.perl 编译方法: release: :\> 切换到openssl目录 :\> perl Configure VC-WIN32 no-asm --prefix= ...

随机推荐

  1. <![CDATA[]]>和转义字符

    被<![CDATA[]]>这个标记所包含的内容将表示为纯文本,比如<![CDATA[<]]>表示文本内容“<”. 此标记用于xml文档中,我们先来看看使用转义符的情 ...

  2. 根据第三方提供的webservice地址获取文件信息

    import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.en ...

  3. Fluent UDF【3】:环境配置

    windows操作系统下UDF的编译需要借助Visual Studio中的C编译器.因此若要想编译UDF,则必须事先配置好编译环境. Visual Studio Visual Stuido(后面简称V ...

  4. 【小白的CFD之旅】19 来自计算网格的困惑

    经过一年的忙碌,终于又到了寒假时间,小白又满状态复活了. 这一年小白学了很多的课程,但是一年下来,小白却感觉脑袋里没留下什么东西,貌似什么东西都在考完试的那一刹那全还回给老师了.这一年学习之余,小白仍 ...

  5. vim学习日志(8):linux查看和修改文件编码

    查看文件的编码 方法一: 1.在Vim中可以直接查看文件编码:set fileencoding即可显示文件编码格式.注:如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可 ...

  6. iOS开发-应用管理

    // //  ViewController.m //  21-应用管理-1 // //  Created by hongqiangli on 2017/8/2. //  Copyright © 201 ...

  7. Beginning SDL 2.0(3) SDL介绍及BMP渲染

    SDL是一个跨平台的多媒体库.为了实现跨平台,SDL提供了一个简单的界面库抽象,比如提供了SDL_Window用于表示窗口句柄,SDL_Surface.SDL_Texture.SDL_Renderer ...

  8. 7个华丽的基于Canvas的HTML5动画

    说起HTML5,可能让你印象更深的是其基于Canvas的动画特效,虽然Canvas在HTML5中的应用并不全都是动画制作,但其动画效果确实让人震惊.本文收集了7个最让人难忘的HTML5 Canvas动 ...

  9. js的深入学习课程Object.prototype.toString.call()

    1.通过 Object.prototype.toString.call() 进行类型判断 function isArray(obj) { return Object.prototype.toStrin ...

  10. maven copy jar 插件

     插件比较特殊 eclipse下的 首先声明插件 <pluginManagement> <plugin> <groupId>org.apache.maven.plu ...