こちらを参考に進めた。
環境
- windows8.1(64bit)
- Visual Studio Community 2017
- cmake 3.9.0
手順
-
公式から最新のソースをダウンロードする。
今回はboost_1_69_0.zip
を使用した。 -
.zip
を展開する。場所は適当。今回はC/boost_1_69_0
に置いた。 - TypeScriptが必要なので、visual studio インストーラ -> 変更 -> 個別のコンポーネント -> TypeScript 2.2 SDKでインストールする。
- 管理者権限で
PowerShell
を起動して、展開したフォルダに移動して、次を実行。
./bootstrap.bat
Building Boost.Build engine
Bootstrapping is done. To build, run:
.\b2
To adjust configuration, edit 'project-config.jam'.
Further information:
- Command line help:
.\b2 --help
- Getting started guide:
http://boost.org/more/getting_started/windows.html
- Boost.Build documentation:
http://www.boost.org/build/doc/html/index.html
さらに次を実行。
./b2 install --prefix="C:\local\boost_1_69_0" -j 4
筆者のマシンが4コアなので-j 4
。
これでC:\local\boost_1_69_0
にインストールされる。
- 本当は生成されるファイルの種類(x86とx64)でインストール先フォルダを分けたほうが良いのだと思う。上記は全部同じフォルダに入る。
-
./b2
のオプションにruntime-link=static,shared
が入っていると失敗するようだったので、できるだけ簡単なコマンドで試した。これで良いのか分からないが、とりあえず動いたものをメモ。
インストールされたことを確認
こちらと同じように検証した。下記のソースコードも同じものを使用させて頂いた。
- VisualStudio2017で新規に
win32コンソールアプリケーション
のプロジェクト作成 - プロジェクトのプロパティから、C/C++ ⇒ 全般 ⇒ 追加のインクルードディレクトリに
C:\local\boost_1_69_0\include\boost-1_69
を追加 -
リンカー ⇒ 全般 ⇒ 追加のライブラリディレクトリに
C:\local\boost_1_69_0\lib
を追加
# include <iostream>
# include <boost/version.hpp>
int main() {
std::cout << "boostバージョン:" << BOOST_VERSION << std::endl;
std::cout << "boostライブラリバージョン:" << BOOST_LIB_VERSION << std::endl;
return 0;
}
boostバージョン:106900
boostライブラリバージョン:1_69
# include <iostream>
# include <boost/asio.hpp>
namespace asio = boost::asio;
using asio::ip::tcp;
int main()
{
//宣言
asio::io_service io_service;
tcp::socket socket(io_service);
boost::system::error_code error;
//接続
socket.connect(tcp::endpoint(asio::ip::address::from_string("192.168.0.1"), 31400), error);
//エラーかどうかチェック
if (error) std::cout << "未接続: " << error.message() << std::endl;
else std::cout << "接続済み" << std::endl;
}
未接続: 接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。または接続済みのホストが応答しなかったため、確立された接続は失敗しました。
問題なくインストールされているようだ。