1、官網下載libcurl https://curl.se/download/curl-7.88.1.tar.gz 2、解壓執行curl目錄下的buildconf.bat,然後cd winbuild 3、編譯 windows下編譯(MT): 32-debug: nmake /f Makefile.v ...
1、官網下載libcurl
https://curl.se/download/curl-7.88.1.tar.gz
2、解壓執行curl目錄下的buildconf.bat,然後cd winbuild
3、編譯windows下編譯(MT):
32-debug: nmake /f Makefile.vc mode=static vc=10 debug=yes rtlibcfg=static machine=x32 ENABLE_IDN=no
32-release: nmake /f Makefile.vc mode=static vc=10 debug=no rtlibcfg=static machine=x32 ENABLE_IDN=no
64-debug: nmake /f Makefile.vc mode=static vc=10 debug=yes rtlibcfg=static machine=X64 ENABLE_IDN=no
64-release: nmake /f Makefile.vc mode=static vc=10 debug=no rtlibcfg=static machine=X64 ENABLE_IDN=no
windows下編譯(MD):
32-debug: nmake /f Makefile.vc mode=static vc=10debug=yes machine=x32 ENABLE_IDN=no
32-release: nmake /f Makefile.vc mode=static vc=10debug=no machine=x32 ENABLE_IDN=no
64-debug: nmake /f Makefile.vc mode=static vc=10debug=yes machine=X64 ENABLE_IDN=no
64-release: nmake /f Makefile.vc mode=static vc=10debug=no machine=X64 ENABLE_IDN=no
重點是一定要加ENABLE_IDN=no,預設是打開的,不加的話編譯會出錯
X64不行就換AMD64
Boost安裝64位的
1. 從boost官網(www.boost.org)下載boost庫,已經更新到1.62.0,下載boost_1_62_0.zip並解壓到指定的路徑(我選擇的路徑是E:oost)。
2. 從開始->所有程式->Microsoft Visual Studio 2010,打開Visual Studio Tools的Visual Studio x64 Win64命令提示。
3. 切換到解壓路徑E:oostoost_1_62_0下,運行bootstrap.bat,建立編譯工具bjam.exe,b2.exe。
4. b2 --toolset=msvc-10.0 --build-type=complete link=static address-model=64 threading=multi variant=release
註意vs release版本就寫 debug=no,vs mt 編譯需要加 rtlibcfg=static 參數
4、vs 設置包含庫和目錄
5、因為libcurl是靜態編譯的所以要加預處理器定義 CURL_STATICLIB
註意:
如果你想查看你的DLL的導出情況可以這樣做,在你的VC安裝目錄下的VC98\BIN目錄下有一個dumpbin.exe文件,它就是用來查看DLL文件信息的,你可以在命令行下(CMD)用dumpbin -exports dllname 命令來查看DLL的導出函數列表
當使用動態庫DLL時,在MSVC中的Code Generation選項選擇MD/MDD(依Release或Debug而定),此時系統函數會調用MSVCRT.lib與MSVCR71.DLL
當使用靜態庫LIB時,在MSVC中的Code Genration選項選擇MT/MTD(依Release或Debug而定),此時系統函數會調用LIBCMT.lib
警告:
不要混合使用庫的靜態版本和動態版本。在一個進程中有多個庫副本會導致問題,因為副本中的靜態數據不與其他副本共用。鏈接器禁止在 .exe 文件內部既使用靜態版本又使用動態版本鏈接,但您仍可以使用運行時庫的兩個(或更多)副本。例如,當與用動態 (DLL) 版本的運行時庫鏈接的 .exe 文件一起使用時,用靜態(非 DLL)版本的運行時庫鏈接的動態鏈接庫可能導致問題。(還應該避免在一個進程中混合使用這些庫的調試版本和非調試版本)。
這句話的意思是exe工程儘量保持要麼都引用動態庫,要麼都靜態庫,不要又引用動態又引用靜態,會容易引起衝突
還有就是別動態庫中引用了一個靜態庫,然後該動態庫又被exe引用了,這些都容易造成衝突