Vcpkg安裝庫是報zlib安裝失敗的解決辦法

2021-08-11 11:32:04 字數 1774 閱讀 2381

使用vcpkg安裝需要依賴zlib的庫時,會先安裝zlib,此時會報錯:

error: building package zlib:x86-windows-static failed with: build_failed
輸出日誌中有大量cmake相關錯誤。

安裝vs2017時過度潔癖,自以為不需要的到東西都沒有裝。

這裡用cmake生成ninja的make檔案,而ninja再去呼叫對應平台(x86/x64)的cl.exe來編譯cpp檔案。

而不是通常在win下編譯使用的命令列工具:

c:\program files (x86)\microsoft visual studio\2017\enterprise

\vc\auxiliary

\build

\vcvarsall.bat

c:\progra

~2\mib055~1\2017\enterp

~1\vc

\tools

\msvc\1411~1.255\bin

\hostx64\x86\cl.exe

我們直接執行乙個cpp的編譯:

c:\progra

~2\mib055~1\2017\enterp

~1\vc

\tools

\msvc\1411~1.255\bin

\hostx86\x86\cl.exe -dno_fseeko -dzlib_dll -d_crt_nonstdc_no_deprecate -d_crt_secure_no_deprecate -id:\vcpkg

\vcpkg

\buildtrees

\zlib

\src

\zlib-1.2.11 -i. /dwin32 /d_windows /w3 /utf-8 /mp /d_debug /mdd /z7 /ob0 /od /rtc1 /showincludes /focmakefiles\zlib.dir\adler32.obj /fdcmakefiles\zlib.dir\ /fs -c d:\vcpkg

\vcpkg

\buildtrees

\zlib

\src

\zlib-1.2.11\adler32.c

此時會直接報錯找不到mspdb140.dll。而使用everything搜尋整個電腦,這東西從來沒有過。

所以結論就是,我們精簡安裝(僅安裝了windows平台c++開發相關工具)的vs2017的編譯器是不完整的,至少對於cmake-->ninja-->cl.exe這種情況是無法使用的。

所以我們要做的需要讓其支援上述工具鏈的編譯。

答案很簡單:

此時再用everything搜搜mspdb140.dll系統中已經有這東西了。

再試試vcpkg install zlib

你會看到

the package zlib is compatible with built-in cmake targets
大功告成。

cmake我現在的當前最新版(3.10.0_x64)

附上我的vs2017安裝的元件。

安裝Oracle資料庫報SWAP空間不足的處理方法

報錯示意圖 在安裝oracle的時候,可能因為我們分配的swap空間不夠導致安裝失敗。處理步驟如下 swap空間為2g root linux01 oracle free total used free shared buffers cached mem 2039004 1207260 831744 ...

python爬蟲常用庫安裝 爬蟲常用庫的安裝

請求庫 解析庫儲存庫 工具庫請求庫 urlib re python內建庫 requests pip3 install requests pip2,pip conda都是可以選擇的 selenium pip3 install selenium chromedriver 測試python下輸入 from...

mysql安裝了很久 Mysql資料庫之安裝

系統環境 centos 6.8 64位 mysql版本 mysql 5.6.30 一 解除安裝預設安裝的版本 yum list grep mysql 確認是否預設安裝 yum y remove mysql 如果安裝則解除安裝 二 安裝mysql所依賴的庫 yum y groupinstall dev...