出現這個問題主要是因爲libcurl.dll不兼容xp系統,不要改變工程的編譯配置項,源碼默認是不支持的,現記錄修改如下:
主要原因是win10+vs2013編譯默認是不支持xp的,這時用depends.exe查看發現還是libcurl.dll調用這個函數,搜了一圈大多數都是libcurl在xp上使用遇到無法定位程序輸入點GETTICKCOUNT64問題,個人感覺應該屬於同一個問題,網上多數都是針對vs直接打開工程,修改工程文件的處理方式:
1、VS2013項目屬性 -> 常規: 將平臺工具集改爲 "Visual Studio 2013 - Windows XP (v120_xp)
2、命令行編譯模式對應的修改,但是,那些都是在通過IDE直接修改的,在不用打開工程文件的情況下可以修改{src_curl}\winbuild\MakefileBuild.vc文件:
CFLAGS = /I. /I ../lib /I../include /nologo /W3 /EHsc /DWIN32 /FD /c /DBUILDING_LIBCURL
CURL_CFLAGS = /I../lib /I../include /nologo /W3 /EHsc /DWIN32 /FD /c
CURL_LFLAGS = /nologo /out:$(DIRDIST)\bin\$(PROGRAM_NAME) /subsystem:console /machine:$(MACHINE)
修改爲:
CFLAGS = /I. /I ../lib /I../include /nologo /W3 /EHsc /DWIN32 /FD /c /DBUILDING_LIBCURL /D_USING_V110_SDK71_
CURL_CFLAGS = /I../lib /I../include /nologo /W3 /EHsc /DWIN32 /FD /c /D_USING_V110_SDK71_
CURL_LFLAGS = /nologo /out:$(DIRDIST)\bin\$(PROGRAM_NAME) /subsystem:console,"5.01" /machine:$(MACHINE)
注意:CFLAGS 與 CURL_CFLAGS,CURL_LFLAGS 在工程配置文件中並不是三行排列在一起的,入下圖:
3、編譯
打開任務欄找到Microsoft Visual Studio 2008à Visual Studio Toolà Visual Studio 2008 x64 Win64 命令提示,打開。
因爲我要編譯64位庫,所以我打開的是“Visual Studio 2008 x64 Win64 命令提示”,如果你們是編譯32位庫,就打開“Visual Studio 2008 命令提示”。
進入curl-7.54.0\winbuild,將剛纔組成的命令輸入,按下回車,就坐等庫編譯成功。
參考文獻: