boost のインストールに成功した!

boostをインストールしてみたのだが,どうしても include path が通らないので,vcpkg というツールを使ってみた.これは,多分マイクロソフトの製品ではないかと思われるが,サードパーティ製の規模の大きいパッケージをインストールするためのツールで,これを使えば整合的なインストールができるというのが謳い文句だ.vcpkg を使うためにはまず,git にアクセスできる必要があるので,git をダウンロードしてインストールした.https://git-scm.com/ この後,git を起動してコマンドラインから以下を実行して,vcpkg をインストールする.

>git clone https://github.com/Microsoft/vcpkg.git

ついで,以下を実行してvcpkgをビルドする.

>.\vcpkg\bootstrap-vcpkg.bat

これで vcpkg がインストールできたので,以下を実行して boost をインストールした.

>vcpkg install boost

これだけで boost のインストールが始まったので,おそらく git ないし vcpkg は boost のパッケージがどこに置いてあるかを知っているのだろう.というか,多分 boost は git のプロジェクトの一部なのだろう.インストールには1.1時間掛かっているので,かなりのボリュームだ.ただし,boost がどこにインストールされているのか分からないので,探し回ったところ,以下のフォルダに格納されていた.

C:\Users\babalabo\vcpkg\installed\x86-windows\include

多分ここを指定すればよいのではないかと思う.このフォルダの下にある boost にはすべての hpp ファイルが入っている.(boostのヘッダファイルは*.hではなく,*.hppという拡張子が付いている)DLL は vcpkg\installed\x86-windows\bin に,LIB はvcpkg\installed\x86-windows\lib にある.⇒expample というプロジェクトで試してみたが,ダメだ.どういうことだろう?もしかすると,もうひとつ実行する必要があるのかもしれない.これをやってみよう.

>.\vcpkg\vcpkg integrate install 

これを実行して,以下が表示された.

C:\Users\babalabo>.\vcpkg\vcpkg integrate install
Applied user-wide integration for this vcpkg root.
CMake projects should use: “-DCMAKE_TOOLCHAIN_FILE=C:/Users/babalabo/vcpkg/scripts/buildsystems/vcpkg.cmake”

All MSBuild C++ projects can now #include any installed libraries. Linking will be handled automatically. Installing new libraries will make them instantly available.

多分,この効果は新しく作ったプロジェクトにしか効かないのではないかと思う.VS2017のC++によるデスクトップ開発というパッケージには,Boost.Testのテストアダプターというのが含まれている.つまり,Boost はVS2017にすでに含まれている可能性がある.

https://learn.microsoft.com/ja-jp/visualstudio/test/how-to-use-boost-test-for-cpp?view=vs-2022

Boost.Testというのは,テストのための特製のプロジェクトを立てるということのようで,ここではとりあえずは関係ないようだ.

プロジェクトを作り直した.今回は何も設定することなく完璧に動いた.さて,問題はBigIntが使えるかどうかだ.boostではこれをcpp_intと呼んでいるようだが… ⇒簡単に動いた.

#include <boost/multiprecision/cpp_int.hpp>
#include <iostream>
namespace mp = boost::multiprecision;

int main()
{
     mp::cpp_int x = 1;
    for (unsigned int i = 1; i <= 100; ++i)
         x *= i;
        std::cout << x << std::endl;
}

これで準備は整った.いよいよELSIEの再生だ!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA