1

iOS プロジェクトで Boost::Geometry Library を使用したいと考えています。静脈内のいくつかの試行の 1 日の後、私はここ SO にいます。

Geometry はヘッダーのみのライブラリであるため、バイナリは必要なく、*.hpp ファイルを追加するだけで十分だと思います。私は正しいですか?

これが私がやったことです:

  1. ダウンロードした Boost 1.53.0
  2. boostルートフォルダーをフォルダーに抽出しましたlibs/boost。したがって、ブースト ルートのパスは project/libs/boost/boost (他にも含まれてgeometryいます)です。
  3. xcode に新しいブースト フォルダーを追加しました
  4. ビルド/ターゲットで、に設定Header Search Pathし ます
    • 「$(PROJECT_NAME)/../libs/boost」
    • "$(PROJECT_NAME)/libs/boost"
    • "$(PROJECT_NAME)/../libs/boost/boost"
    • "$(PROJECT_NAME)/libs/boost/boost"
  5. 次のコンパイラ エラーが発生しました。
    • #include "boost/[geometry]/geometry.hpp"「boost/geometry.hpp ファイルが見つかりません」がスローされる
    • #include "geometry.hpp"geometry.hpp で「boost/geometry/core/cs.hpp ファイルが見つかりません」というエラーがスローされます

これが私のプロジェクト構造です:

proj
 |--- classes
 |--- ios
 |--- libs
 |      |--- cocos2dx
 |      |--- CocosDenshion
 |      +--- boost
 +--- res

私は何が欠けていますか?

4

2 に答える 2

2

Boost::Geometry だけでなく、Boost ライブラリ全体の統合に成功しました。従うべき正しい手順は次のとおりです。

  • ダウンロードした Boost 1.53.0
  • ブースト ルート フォルダーを libs/boost フォルダーに抽出しました。したがって、ブースト ルートのパスは project/libs/boost/boost です (プロジェクトの一部である必要はありません。他の場所に置くこともできます。ブースト ファイルは xcode に追加されませんが、ヘッダー検索パスの適切な設定によって参照されます)
  • ビルド/ターゲットで、ヘッダー検索パスをboostフォルダーに設定します。私の場合は、$(PROJECT_NAME)/../../libs/boost
  • ヘッダーは次のように追加できます#include <boost/geometry.hpp>

Boost::Geometry はヘッダーのみのパッケージであるため、これは正常に機能します。ただし、コンパイルが必要なパッケージの場合は、別のアプローチが必要です。

于 2013-05-01T06:10:08.930 に答える