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