# 套件管理工具(vcpkg) ###### tags: c/c++, 套件管理 ## 進階應用 1. 使用json 方式來進行控管 ``` { "name": "atlagent", "version": "1.0.0", "builtin-baseline": "d10d511f25620ca0f315cd83dcef6485efc63010", "dependencies": [ "cpp-httplib","nlohmann-json" ], "overrides": [ { "name": "cpp-httplib", "version": "0.11.2" }, { "name": "nlohmann-json", "version": "3.11.3" } ] } ``` 2. 然後在此目錄用cmd執行 ``` vcpkg install ``` 3. 從安裝路徑引入lib跟.h 4. 確認可以執行後即可 5. 後續可以一併把庫推上git ## 已知缺點 1. 僅能安裝最新版本套件 2. 要安裝不同版本的,要用git 指令查詢指定套件版本的推送紀錄,接著切到那個版本的branch 3. static lib 有時候要去vcproj檔調整全域設定,[參考](https://levelup.gitconnected.com/how-to-statically-link-c-libraries-with-vcpkg-visual-studio-2019-435c2d4ace03) ## 流程(vcpkg) 1. [vcpkg](https://github.com/microsoft/vcpkg) 2. 安裝方式: ``` git clone https://github.com/microsoft/vcpkg .\vcpkg\bootstrap-vcpkg.bat ``` 3. 設置到環境變數 ![](https://i.imgur.com/qrWHEoB.png) 4. 查詢需要的package ``` vcpkg search cpp-httplib ``` 5. 安裝需要的package ``` vcpkg install cpp-httplib (安裝x64版本用以下指令) vcpkg install cpp-httplib:x64-windows (安裝x86-static) vcpkg install cpp-httplib:x86-windows-static ``` ![](https://i.imgur.com/cFRs24e.png) 6. 連動至visual studio ``` (方法一,全域) vcpkg integrate install (方法二,僅某個專案) vcpkg integrate project ``` 7. (方法一)若成功,直接跳 ![](https://i.imgur.com/hhnMT5Q.png) 8. (方法二) ![](https://i.imgur.com/7yKHCac.png) 專案->管理Nuget套件 右上角設定 ![](https://i.imgur.com/odWNHZU.png) 更改來源與名稱 ![](https://i.imgur.com/jQMpwyV.png) 檢查nuget是否設定成功 工具->Nuget 套件管理器->套件管理器主控台 9. 檢查是否有連動 ![](https://i.imgur.com/fvBy9mM.png)