VS2005 編譯 libcurl 時無法找到Normaliz.lib的解決方案

很多人都遇到過用老版本visual studio(如2005)編譯libcurl時報無法找到Normaliz.lib的問題,之前已經有人找到修改libcurl源碼 lib\idn_win32.c的方案,就是藉助 Normaliz.dll 來實現對 IdnToAscii和 IdnToUnicode 的調用,參考鏈接http://www.cnblogs.com/passedbylove/p/5979927.html

其實也可以直接添加Normaliz.lib解決這個問題。Normaliz.lib 屬於Window SDK v7.1A的一部分,你要是安裝了這個SDK,就可以在C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib下找到庫文件。如果官網找不到這個SDK,就到這兒下載(https://download.csdn.net/download/Tonyfield/12333022)。

本人是手動添加的,簡單粗暴。

1. 將SDK v7.1A解壓到 C:\Program Files (x86)\Microsoft SDKs\Windows\

2. 修改 C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat

     頭文件路徑INCLUDE 增加 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include

     庫文件路徑LIB 增加 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib

     以下給出修改部分。


@set INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\ATLMFC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\include;C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\include;%INCLUDE%
@set LIB=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\ATLMFC\LIB;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\LIB;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\lib;C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\lib;%LIB%

3. 如果考慮對 x64的支持,也要修改 C:\Program Files (x86)\Microsoft Visual Studio 8\VC\bin\x86_amd64\vcvarsx86_amd64.bat,這對於編譯libcurl沒有必要。

4. 最後用批處理工具 https://github.com/blackrosezy/build-libcurl-windows 完成編譯。 本人針對 curl-7.69.1 做了一些修改,省的每次下載。

- REM Get download url .Look under <blockquote><a type='application/zip' href='xxx'>
- echo Get download url...
- %XIDEL% https://curl.haxx.se/download.html -e "//a[@type='application/zip' and ends-with(@href, '.zip')]/@href" > tmp_url
- set /p url=<tmp_url

- REM exit on errors, else continue
- if %errorlevel% neq 0 exit /b %errorlevel%

- REM Download latest curl and rename to curl.zip
- echo Downloading latest curl...
- set "LOCAL_CURL=%~dp0\curl.zip"
- bitsadmin.exe /transfer "curltransfer" "https://curl.haxx.se%url%" "%LOCAL_CURL%"

- REM Extract downloaded zip file to tmp_libcurl
- %SEVEN_ZIP% x curl.zip -y -otmp_libcurl | FIND /V "ing  " | FIND /V "Igor Pavlov"

- cd tmp_libcurl\curl-*\winbuild

+ REM Extract downloaded zip file to tmp_libcurl
+ %SEVEN_ZIP% x curl-7.69.1.zip

+ cd curl-7.69.1\winbuild

編譯好的庫:https://download.csdn.net/download/Tonyfield/12333198

 

參考鏈接:

比較全面的討論libcurl的靜態庫編譯問題  : https://blog.csdn.net/amosfeng/article/details/78361663

修改 libcurl源碼解決 Normaliz.LIB缺失引起的編譯問題:http://www.cnblogs.com/passedbylove/p/5979927.html

 

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