[C++] XcodeでBoostライブラリを利用する

MacにBoostをインストールするでMacにBoostをインストールしてみたので早速Xcodeで簡単なBoostを使ったアプリを書いてみたところXcodeでのライブラリ関連の設定につまずいたので書き留めておきます。

実行しようとしたコードは以下のようなもの

#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));
}

Boostライブラリを使うためにはコンパイラおよびリンカに以下の設定を行う必要があります

  • Boostのヘッダーパスの追加
  • Boostライブラリのパスの追加
  • リンクするライブラリ名の追加

Boostのヘッダーパスの追加

  1. プロジェクトナビゲータでプロジェクト名をクリック
  2. 検索窓に「header search path」と入力してHeader Search Pathを探す
  3. ダブルクリックしてBoostヘッダーへのパスを指定。
    私は /opt/local以下にBoostを配置したので /opt/local/boost_1_63_0になります

 

Boostライブラリのパスの追加

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

リンクするライブラリ名の追加

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

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

無事実行できました!

 

[C++] XcodeでBoostライブラリを利用する” への3件のフィードバック

    1. ありがとうございまます。
      Boostライブラリを使う例としてboost::threadのsleepを使ったのですが、あんまり必然性のないサンプルコードでしたね。。。

コメントを残す

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