MacにBoostをインストールするでMacにBoostをインストールしてみたので早速Xcodeで簡単なBoostを使ったアプリを書いてみたところXcodeでのライブラリ関連の設定につまずいたので書き留めておきます。
実行しようとしたコードは以下のようなもの
[cpp]
#include <iostream>
#include <boost/thread.hpp>
int main() {
long sec = 5;
std::cout << "sleeping " << std::to_string(sec) << " seconds." << std::endl;
boost::this_thread::sleep(boost::posix_time::seconds(sec));
}
[/cpp]
Boostライブラリを使うためにはコンパイラおよびリンカに以下の設定を行う必要があります
- Boostのヘッダーパスの追加
- Boostライブラリのパスの追加
- リンクするライブラリ名の追加
Boostのヘッダーパスの追加
- プロジェクトナビゲータでプロジェクト名をクリック
- 検索窓に「header search path」と入力してHeader Search Pathを探す
- ダブルクリックしてBoostヘッダーへのパスを指定。
私は /opt/local以下にBoostを配置したので /opt/local/boost_1_63_0になります

Boostライブラリのパスの追加
- プロジェクトナビゲータでプロジェクト名をクリック
- 検索窓に「library search path」と入力してLibrary Search Pathを探す
- ダブルクリックしてBoostライブラリパスを指定。
私は /opt/local以下にBoostを配置したので /opt/local/boost_1_63_0/stage/libになります

リンクするライブラリ名の追加
- プロジェクトナビゲータでプロジェクト名をクリック
- 検索窓に「other linker flags」と入力してOther Linker Flagsを探す
- ダブルクリックしてリンクするBoostライブラリ名を指定。
上記のコードで必要なのは libboost_thread.dynlibとlibboost_system.dynlibなので-lオプションで-lboost_threadと-lboost_systemを指定する

このあと▶ボタンを押すことで実行してみます。

無事実行できました!
kaizawa
闘う兼業主夫プログラマー。外資系IT企業所属。C++、Java、Solaris、Oracle、セキュリティ、DLP(Data Loss Prevention)、D&D、空手二段(極真会館)、柔道初段、柔術白帯ストライプ3(トライフォース)。English/中文
C++11からはstd::threadが使えますよ。
ありがとうございまます。
Boostライブラリを使う例としてboost::threadのsleepを使ったのですが、あんまり必然性のないサンプルコードでしたね。。。