【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會列出所有要下載下傳的庫的清單,如圖所示,
但是接着會提示下載下傳license出錯(盡管用浏覽器可以打開通路)如下圖:
2.解決辦法
(1)手動下載下傳license和boost-1.73.0-boostcpp.jam檔案
首先,進入到vcpkg的目錄下建立兩個文本(boost_LICENSE_1_0.txt和boost-1.73.0-boostcpp.jam),如圖
然後分别将連結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()
再添加如圖所示代碼(用來跳過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()
(3)重新執行下載下傳指令
./vcpkg install boost:x64-windows
開始進入正常下載下傳