注意:在尝试以下示例之前,请先执行 './vcpkg integrate install' 集成命令。
1. 创建一个C++控制台程序,名称为test。
test.cpp:
#include <iostream> #include <fstream> #include <sstream> #include <json/json.h> #define JSON_PATH "../" using namespace std; int main() { ifstream fs; string jsonPath = JSON_PATH; jsonPath.append("vcpkg.json"); fs.open(jsonPath); if (!fs.is_open()) return -1; ostringstream ss; ss << fs.rdbuf(); fs.close(); string rawJson = ss.str(); JSONCPP_STRING err; Json::CharReaderBuilder builder; const std::unique_ptr<Json::CharReader> reader(builder.newCharReader()); Json::Value root; if (!reader->parse(rawJson.c_str(), rawJson.c_str() + static_cast<int>(rawJson.length()), &root, &err)) { return -1; } if (root["name"].isString()) cout << "project name: " << root["name"].asString() << endl; return 0; }
在sln同级目录下创建清单文件 vcpkg.json 并填入以下代码:
vcpkg.json:
{ "name": "test", "version-string": "0.0.1", "dependencies": [ "jsoncpp" ] }
2. 在项目 — 属性("Properties")— 配置属性("Configuration Properties")— vcpkg中将 "Use Vcpkg Manifest" 设置为 "Yes" 以启用manifest模式。
3. 编译项目并启动。输出为:
project name: test
当您的项目启动编译时,vcpkg会根据清单文件中的配置首先生成依赖项,并在您的项目编译完成后将依赖项自动复制至输出文件夹中。
注意:若您拥有多个项目且使用的triplet各不相同,请使用不同的清单文件声明依赖项。
选项描述
在Visual Studio GUI中(项目——属性("Properties")——配置属性("Configuration Properties")——vcpkg)更改以下选项或在公共的 .prop 文件中定义它们可修改使用vcpkg集成的选项:
选项 |
说明 |
VcpkgEnabled (Use Vcpkg) |
启用或禁用vcpkg集成功能。 |
VcpkgTriplet (Triplet) |
设置使用的triplet |
VcpkgHostTriplet (Host Triplet) |
设置使用的主机triplet。详情请参阅VCPKG_HOST_TRIPLET |
VcpkgAdditionalInstallOptions (Additional Options) |
设置manifest模式下额外的安装命令参数 |
VcpkgConfiguration (Vcpkg Configuration) |
设置使用依赖库对应当前项目配置选项的类型(Debug/Release) |
VcpkgEnableManifest (Use Vcpkg Manifest) |
设置启用manifest模式。若设置为"OFF",则即使检测到清单文件仍然会禁用manifest模式。该选项在将来会默认设置为"ON" |
VcpkgManifestInstall (Install Vcpkg Dependencies) |
需首先启用manifest模式,设置在manifest模式下自动安装依赖项到VcpkgInstalledDirectory中 |
VcpkgInstalledDirectory (Installed Directory) |
设置vcpkg生成的依赖项的头文件和库的安装位置。在manifest模式下,此目录根据清单文件创建并赋值 |