天天看點

vcpkg下載下傳boost庫失敗解決辦法【vcpkg下載下傳boost失敗問題解決辦法(license下載下傳失敗)】

【vcpkg下載下傳boost失敗問題解決辦法】

  • 【vcpkg下載下傳boost失敗問題解決辦法(license下載下傳失敗)】
    • 0.簡介
    • 1.問題現象
    • 2.解決辦法

【vcpkg下載下傳boost失敗問題解決辦法(license下載下傳失敗)】

0.簡介

vcpkg作為微軟推出的管理C++安裝包的工具,極大提升C++程式員配置開發環境的效率;但是vcpkg的特性是将源碼從第三方下載下傳下來然後進行編譯,這樣就導緻有些連接配接不穩定,甚至有些連接配接根本不存在。

(1).vcpkg的安裝和使用可以參考:

https://docs.microsoft.com/zh-cn/cpp/build/vcpkg?view=msvc-160&viewFallbackFrom=vs-2019

https://blog.csdn.net/cjmqas/article/details/79282847#43-%E7%A7%BB%E9%99%A4%E5%85%A8%E5%B1%80%E9%9B%86%E6%88%90

(2).vcpkg上下載下傳的大部分的源碼庫,都基本上是GitHub上的,是以要確定GitHub相關網站的域名解析沒有問題。如果域名解析有問題可以參考:

https://blog.csdn.net/weixin_45777019/article/details/107484280

https://blog.csdn.net/cxxxxxxxxxxxxx/article/details/106152542?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

(3).這裡給出了boost下載下傳過程中由于證書下載下傳失敗造成boost安裝失敗的解決辦法(改cmake檔案跳過證書下載下傳和驗證)

1.問題現象

(1)下載下傳boost的指令(以x64為例):

./vcpkg install boost:x64-windows
           

這時vcpkg會列出所有要下載下傳的庫的清單,如圖所示,

vcpkg下載下傳boost庫失敗解決辦法【vcpkg下載下傳boost失敗問題解決辦法(license下載下傳失敗)】

但是接着會提示下載下傳license出錯(盡管用浏覽器可以打開通路)如下圖:

2.解決辦法

(1)手動下載下傳license和boost-1.73.0-boostcpp.jam檔案

首先,進入到vcpkg的目錄下建立兩個文本(boost_LICENSE_1_0.txt和boost-1.73.0-boostcpp.jam),如圖

vcpkg下載下傳boost庫失敗解決辦法【vcpkg下載下傳boost失敗問題解決辦法(license下載下傳失敗)】

然後分别将連結1和連結2裡的文本内容粘貼到上述建立的文本檔案中(如果打不開,注意看簡介裡的第2小節域名解析的處理)。

連結1:https://raw.githubusercontent.com/boostorg/boost/boost-1.73.0/LICENSE_1_0.txt

連結2:https://raw.githubusercontent.com/boostorg/boost/boost-1.73.0/boostcpp.jam

(2) 修改cmake跳過下載下傳檔案和Hash值校驗

a.找到vcpkg安裝目錄下的vcpkg\scripts\cmake\vcpkg_download_distfile.cmake檔案,用notepad++打開,先添加如圖所示代碼(用來跳過license下載下傳)

if("${url}" STREQUAL "https://raw.githubusercontent.com/boostorg/boost/boost-1.73.0/LICENSE_1_0.txt")
	set(download_success 1)
    break()
endif()
           
vcpkg下載下傳boost庫失敗解決辦法【vcpkg下載下傳boost失敗問題解決辦法(license下載下傳失敗)】

再添加如圖所示代碼(用來跳過Hash值校驗);注意這裡的license路徑僅供參考,實際按照個人安裝位置配置。

if("${FILE_PATH}" STREQUAL "D:/StudySpace/VckpgBuild/vcpkg/downloads/temp/boost_LICENSE_1_0.txt")
	message(STATUS "User Skipping hash check for ${FILE_PATH}.")
    return()
endif()
if("${FILE_PATH}" STREQUAL "D:/StudySpace/VckpgBuild/vcpkg/downloads/boost_LICENSE_1_0.txt")
	message(STATUS "User Skipping hash check for ${FILE_PATH}.")
    return()
endif()
           
vcpkg下載下傳boost庫失敗解決辦法【vcpkg下載下傳boost失敗問題解決辦法(license下載下傳失敗)】

(3)重新執行下載下傳指令

./vcpkg install boost:x64-windows
           

開始進入正常下載下傳

vcpkg下載下傳boost庫失敗解決辦法【vcpkg下載下傳boost失敗問題解決辦法(license下載下傳失敗)】

繼續閱讀