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參考了,這些都容易造成沖突
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/546046.html
標籤:其他
