curl xp系統報“無法定位程序輸入點 InitializeCriticalSectionEx 於動態鏈接庫 Kernel32.dll”解決辦法

出現這個問題主要是因爲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,將剛纔組成的命令輸入,按下回車,就坐等庫編譯成功。

 

 

 

參考文獻:

https://blog.csdn.net/tiantiananan/article/details/88061997

http://blog.sina.com.cn/s/blog_62949ff40102x2wm.html

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