vcpkgとは、Microsoftが提供するC/C++ライブラリ向けのパッケージ管理システムです。
ここでは、vcpkgを使用してC/C++ライブラリを導入する方法について解説します。
vcpkgを導入するメリット
通常、WindowsでOSSのライブラリを利用する場合、ビルドや依存関係の解決は自分で行わなければなりません。ライブラリの構成が複雑だと、導入するだけでもかなりの時間を要してしまいます。
vcpkgを利用すると、これらの厄介な作業はツールが自動で行ってくれるため、ライブラリを簡単に導入することができます。
開発者はプログラミングに集中できるため、開発効率の向上に繋がります。
vcpkgのインストール
vcpkgをインストールするには、ソースコード一式をダウンロードして実行ファイルを生成する必要があります。難しそうに感じますが、インストールは2ステップで完了するためとても簡単です。
前提条件としてGitがインストールされている必要があります。インストールされていない場合は、以下の記事を参考にインストールしてください。
ソースコード一式をダウンロード
vcpkgのソースコードはGitHubで公開されています。Gitを使用し、GitHubからvcpkgのリポジトリをクローンします。
git clone https://github.com/microsoft/vcpkg.git
ローカルリポジトリはクローンを実行したディレクトリに作成されます。事前にvcpkgをインストールしたいディレクトリへ移動しましょう。
Windowsでサポートされているパス長はデフォルトで260文字までという制限があるため、Cドライブ直下などの短いパスでクローンを行うことを推奨します。
実行ファイルを生成
ローカルリポジトリの中に、bootstrap-vcpkg.bat
という名前のバッチファイルが格納されています。実行ファイルの生成はバッチファイルが自動で行なってくれます。
cd vcpkg
bootstrap-vcpkg.bat
vcpkg.exe
という名前の実行ファイルがローカルリポジトリ内に生成されていれば、vcpkgのインストールは完了です。
実行ファイルへのパスを環境変数に設定しておくと、任意のディレクトリからvcpkgを利用できるため便利です。
vcpkgの基本操作
利用可能なライブラリを検索
search
コマンドで利用可能なライブラリを検索します。
vcpkg search [<部分文字列>]
部分文字列を指定することで一致するライブラリのみを表示することができます。指定しない場合は利用可能なライブラリが全て表示されます。
利用可能なライブラリは、パッケージ一覧から検索することも可能です。
ライブラリのインストール
install
コマンドでライブラリをインストールします。
vcpkg install <パッケージ名>
インストールしたライブラリを表示
インストールしたライブラリは、list
コマンドで表示できます。
vcpkg list [<部分文字列>]
部分文字列を指定することで一致するライブラリのみを表示することができます。指定しない場合はインストールしたライブラリが全て表示されます。
ライブラリのアンインストール
remove
コマンドでライブラリのアンインストールが行えます。
vcpkg remove <パッケージ名>
ターゲット環境の指定
vcpkgはクロスコンパイルの仕組みを提供しています。
triplet
オプションを利用することで、任意の環境で動作するライブラリのインストールや、アンインストールが行えます。
tripletとはターゲット環境を表す文字列です。CPUやOS、ライブラリのリンク方法などを指定することができます。
vcpkg install <パッケージ名> --triplet=<ターゲット環境>
vcpkg install <パッケージ名>:<ターゲット環境>
対応しているターゲット環境は、vcpkg help triplet
で確認できます。
インストールしたライブラリの利用
Visual Studioから利用
integrate
コマンドで、vcpkgでインストールしたライブラリをVisual Studioから利用できます。
vcpkg integrate install
これによって、インクルードディレクトリやライブラリディレクトリ、ライブラリが自動でVisual Studioに追加されます。
Visual Studioでプロジェクトを開き、プロパティからtripletの設定をすることでターゲット環境を変更できます。
CMakeから利用
CMakeでCMAKE_TOOLCHAIN_FILE
変数にvcpkg.cmake
へのパスを設定することで、vcpkgでインストールしたライブラリをCMakeから利用できます。
cmake [<プロジェクトへのパス>] -D CMAKE_TOOLCHAIN_FILE=<vcpkgへのパス>/scripts/buildsystems/vcpkg.cmake
これによって、find_package()
やfind_path()
、find_library()
から検索できるようになります。
vcpkg.cmake
へのパスを環境変数に設定しておくと便利です。
ターゲット環境はVCPKG_TARGET_TRIPLET
変数を設定することで変更できます。
cmake [<プロジェクトへのパス>] -D VCPKG_TARGET_TRIPLET=<ターゲット環境> -D CMAKE_TOOLCHAIN_FILE=<vcpkg.cmakeへのパス>
その他の開発環境から利用
インストールしたライブラリはvcpkg/installed/<ターゲット環境>
ディレクトリに格納されています。
利用する側でパスを適切に指定することでvcpkgでインストールしたライブラリを利用できます。
コメント