チュートリアル: コマンド ラインから依存関係をインストールする
ヒント
依存関係をインストールする推奨される方法については、「マニフェスト ファイルから依存関係をインストールする」を参照してください。
警告
一部の vcpkg 機能は、クラシック モードでは使用できません。
vcpkg には、クラシック モードとマニフェスト モードの 2 つの操作モードがあります。 この記事では、クラシック モードを使用してパッケージをインストールする方法について説明します。 ほとんどのユーザーには、代わりにマニフェスト モードを使用することをお勧めします。
クラシック モードでは、vcpkg をコマンド ライン インターフェイスとして使用して、共通 のインストール ディレクトリに依存関係をインストールします。 通常、vcpkg の %VCPKG_ROOT%/installed
インストール ディレクトリがある場所 %VCPKG_ROOT%
にあります。
このチュートリアルでは、次の事項について説明します。
前提条件
- vcpkg
- ターミナル
- コード エディター
- C++ コンパイラ
- (省略可能)CMake または MSBuild
1 - プロジェクトを作成する
新しいフォルダーで、次の内容で名前を付けた main.cxx
ソース ファイルを作成します。
#include <cxxopts.hpp>
#include <fmt/format.h>
#include <range/v3/view.hpp>
namespace view = ranges::views;
int fib(int x)
{
int a = 0, b = 1;
for (int it : view::repeat(0) | view::take(x))
{
(void)it;
int tmp = a;
a += b;
b = tmp;
}
return a;
}
int main(int argc, char **argv)
{
cxxopts::Options options("fibo", "Print the fibonacci sequence up to a value 'n'");
options.add_options()("n,value", "The value to print to", cxxopts::value<int>()->default_value("10"));
auto result = options.parse(argc, argv);
auto n = result["value"].as<int>();
for (int x : view::iota(1) | view::take(n))
{
fmt::print("fib({}) = {}\n", x, fib(x));
}
}
このコードは、vcpkg パブリック レジストリhttps://github.com/Microsoft/vcpkgですべて使用できるオープン ソース ライブラリ cxxopts
fmt
、、および range-v3
; を参照します。
2 - vcpkg をビルド システムと統合する
この手順では、プロジェクトをビルドするたびにプロジェクトの依存関係が自動的にインストールまたは復元されるように、vcpkg を CMake または MSBuild と統合する方法について説明します。
別のビルド システムを使用している場合は、次の手順 「依存関係のインストール」に進んでください。
MSBuild プロジェクトで vcpkg を使用するには、次のコマンドを実行します。
vcpkg integrate install
MSBuild 統合を vcpkg integrate install
初めて有効にする場合にのみ、コマンドを実行する必要があります。 これにより、既存および将来のすべてのプロジェクトに対して MSBuild 統合が可能になります。 MSBuild システム全体の統合を削除するために使用 vcpkg integrate remove
します。
この統合メソッドは、vcpkg がインストールされたパッケージを次のプロジェクト プロパティに自動的に追加します。 Include Directories
Link Directories
Link Libraries
さらに、ビルド後のアクションが作成され、必要な DLL がビルド出力フォルダーに確実にコピーされます。 これは、Visual Studio 2015 以降を使用するすべてのソリューションとプロジェクトで機能します。
3 - 依存関係のインストール
このコードは、オープン ソース ライブラリである cxxopts
、、 fmt
および range-v3
これらのライブラリを参照します。これらはすべて vcpkg パブリック レジストリで https://github.com/Microsoft/vcpkg使用できます。
これらのパッケージをインストールするには、コマンドを vcpkg install
使用します。
vcpkg install cxxopts fmt range-v3
$ ./vcpkg install cxxopts fmt range-v3
Computing installation plan...
The following packages will be built and installed:
cxxopts:x64-windows -> 3.1.1
fmt:x64-windows -> 10.0.0
range-v3:x64-windows -> 0.12.0#1
* vcpkg-cmake:x64-windows -> 2023-05-04
* vcpkg-cmake-config:x64-windows -> 2022-02-06#1
Additional packages (*) will be modified to complete this operation.
(omitted)
cxxopts provides CMake targets:
# this is heuristically generated, and may not be correct
find_package(cxxopts CONFIG REQUIRED)
target_link_libraries(main PRIVATE cxxopts::cxxopts)
The package fmt provides CMake targets:
find_package(fmt CONFIG REQUIRED)
target_link_libraries(main PRIVATE fmt::fmt)
# Or use the header-only version
find_package(fmt CONFIG REQUIRED)
target_link_libraries(main PRIVATE fmt::fmt-header-only)
range-v3 provides CMake targets:
# this is heuristically generated, and may not be correct
find_package(range-v3 CONFIG REQUIRED)
target_link_libraries(main PRIVATE range-v3::meta range-v3::concepts range-v3::range-v3)
4 - プロジェクトをビルドする
重要
インストールされているパッケージの トリプレット がプロジェクトの構成と一致していることを確認します。 x64-windows-static
64 ビット プロジェクト、x86-windows
または 32 ビット プロジェクトに使用x64-windows
またはx86-windows-static
使用します。
システム全体の統合が有効になっている場合は、プロジェクトをビルドするために実行 msbuild
します。
PS D:\projects\manifest-example> msbuild
MSBuild version 17.7.0-preview-23319-02+6829506b8 for .NET Framework
Build started 8/13/2023 3:07:36 PM.
Project "D:\projects\manifest-example\manifest-example.sln" on node 1 (default targets).
ValidateSolutionConfiguration:
(omitted)
PrepareForBuild:
(omitted)
InitializeBuildStatus:
(omitted)
ComputeStdModulesCompileInputs:
(omitted)
SetModuleDependencies:
VcpkgTripletSelection:
Using triplet "x64-windows" from "D:\vcpkg\installed\x64-windows\"
Using normalized configuration "Debug"
ClCompile:
(omitted)
Link:
(omitted)
AppLocalFromInstalled:
pwsh.exe -ExecutionPolicy Bypass -noprofile -File "D:\vcpkg\scripts\buildsystems\msbuild\applocal.ps1" "D:\projects\manifest-example\x64\Debug\manifest-example.exe"
"D:\vcpkg\installed\x64-windows\debug\bin" "x64\Debug\manifest-example.tlog\manifest-example.write.1u.tlog" "x64\Debug\vcpkg.applocal.log"
D:\projects\manifest-example\x64\Debug\fmtd.dll
FinalizeBuildStatus:
Deleting file "x64\Debug\manifest-example.tlog\unsuccessfulbuild".
Touching "x64\Debug\manifest-example.tlog\manifest-example.lastbuildstate".
Done Building Project "D:\projects\manifest-example\manifest-example.vcxproj" (default targets).
Done Building Project "D:\projects\manifest-example\manifest-example.sln" (default targets).
Build succeeded.
次のステップ
このチュートリアルでは、コマンド ライン インターフェイスとして vcpkg を使用して、単純なプロジェクトの依存関係をインストールしました。
次に試すその他のタスクを次に示します。
- マニフェスト ファイルを使用してパッケージをインストールする
- トリプレットを使用してカスタム プラットフォーム用のパッケージを インストールする
- バージョン管理を使用して 反復可能なビルドのバージョンをロックダウンする
- バイナリ キャッシュを使用して 継続的インテグレーションの実行間でバイナリを再利用する
- カスタム レジストリを使用してプライベート ライブラリを 管理する
vcpkg