vs2015編譯libcurl+ssl+zlib(MT靜態版)

編譯不需要vc運行時的MT靜態庫版本的libcurl+ssl+zlib

三個庫的目錄放在同級目錄下,以便對應本文的路徑。
一定要使用VS2015 的 MSBuild 命令提示符,否則編譯openssl可能會因爲環境識別導致各種失敗


zlib

優先把找到Makefile.msc的

CFLAGS  = -nologo -MD -W3 -O2 -Oy- -Zi -Fd"zlib" $(LOC)

這一行,改爲MD改爲MT

使用VS2015 的 MSBuild 命令提示符工具,cd到zlib-1.2.8目錄,使用命令編譯

nmake -f win32/Makefile.msc OBJA="inffast.obj"  

openssl

安裝ActivePerl,自行搜索下載,一路Next安裝完成
打開ms\nt.mak文件
修改爲 CFLAG= /MT

使用VS2015 的 MSBuild 命令提示符,CD到openssl根目錄,依次執行:

perl Configure VC-WIN32
ms\do_ms.bat 
"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/vcvars32.bat"
nmake -f ms/nt.mak 

其他選項參考:

編譯動態庫:
nmake -f ms\ntdll.mak
編譯靜態庫:
nmake -f ms\nt.mak
測試動態庫:
nmake -f ms\ntdll.mak test
測試靜態庫:
nmake -f ms\nt.mak test
安裝動態庫:
nmake -f ms\ntdll.mak install
安裝靜態庫:
nmake -f ms\nt.mak install
清除上次動態庫的編譯,以便重新編譯:
nmake -f ms\ntdll.mak clean
清除上次靜態庫的編譯,以便重新編譯:
nmake -f ms\nt.mak clean

libcurl

進入libcurl根目錄下的lib目錄,新建一名爲release_ssl_zlib.bat的批處理文件,其內容如下:

call "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/vcvars32.bat"
set CFG=release-ssl-zlib
set RTLIBCFG=static
set OPENSSL_PATH=../../openssl-1.0.1u
set ZLIB_PATH=..\..\zlib-1.2.8
nmake -f Makefile.vc14
pause

路徑根據自己設定的來寫,如果是都在同級目錄,那麼就按照這樣就行了。

執行批處理文件以後,在lib目錄下的release-ssl-zlib目錄中,會生成libcurl.lib靜態庫。

使用時需要Copy文件並引用
libcurl.lib
libeay32.lib
ssleay32.lib
zlib.lib

預處理器 CURL_STATICLIB


在vs2015引用會遇到問題

“鏈接器工具錯誤 LNK2026 XXX模塊對於 SAFESEH 映像是不安全的”

解決方法:
1.打開該項目的“屬性頁”對話框。
2.單擊“鏈接器”文件夾。
3.單擊“命令行”屬性頁。
4.將 /SAFESEH:NO 鍵入“附加選項”框中,然後點擊應用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章