web-dev-qa-db-ja.com

Boostライブラリを含めるにはどうすればよいですか?

私はBoostライブラリ、特にlexical_castgeometryをプログラムに組み込もうとしています。 #include"boost/boost/geometry.hpp"および#include"boost/boost/lexical_cast/lexical_cast_old.hpp"を使用してそれらを含めます。

コードを実行すると、致命的なエラー「インクルードファイルを開けません: 'boost/geometry/geometry.hpp':No such file or directory」が表示され、別のライブラリを含むBoostライブラリ内の別の.hppファイルが表示されますが、 #include<...>の代わりに#include"..."を使用します。

"..."を置き換えると、このエラーが発生しますが、#include<...>ではなく#include"..."を使用して含まれている次のライブラリに置き換えられます。

これは私が#include<...>のほぼすべてのインスタンスを#include"..."に置き換えるといううんざりするような穴に私を導く可能性があるように感じます。変更できる設定や、これを整理するために含めることができるコードの一部はありますか?

または、他のすべての不要なライブラリを削除して、必要なライブラリを変更することもできます(私は知っていますが、それらは互いに依存しているように見えるので、それでも多くのことになります)。

Boostライブラリバージョン1.58.0を使用しています。

8
Peter

最初に、_#include "filepath"_と_#include <filepath>_ here の違いについて読む必要があります。

個人的には、次のようにVisual StudioのBoostを使用しています。

  1. プロジェクトのプロパティC/C++General追加のインクルードディレクトリ、およびboostライブラリへのパスを追加ルート(私の場合はC:\Program Files (x86)\Boost_1_53)。
  2. _#include <boost/lexical_cast/lexical_cast_old.hpp>_のようなソースに.hppファイルを含めます

ヘッダーのみではないライブラリを使用している場合は、プロジェクトプロパティリンカーでBoostライブラリへのパスも追加する必要があります一般追加のライブラリディレクトリ

9
kvorobiev

例えば:

  1. Boostライブラリ-_c:\boost\boost_1_58_0_(管理者として_booststrap.bat_および_b2_を実行)。
  2. 文字列$(THIRD_PARTY)\boost\boost_1_58_0\includeおよび$(THIRD_PARTY)\boost\boost_1_58_0\VC++ディレクトリインクルードディレクトリに追加します
0

Visual Studio 2012でプロジェクトを右クリックし、[プロパティ]を選択します。

プロパティダイアログで、[構成プロパティ]、[VC++ディレクトリ]の順に選択します。

「インクルードディレクトリ」リストにBoostインクルードパスを追加する必要があります。

すべてのヘッダーのみのライブラリを使用している場合は、これで完了です。それ以外の場合は、「ライブラリディレクトリ」にBoostライブラリパスを追加する必要があります。

0
Ferruccio