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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM