4

ヘッダー ライブラリの追加で問題が発生しています。

プロジェクトを右クリックし、Properties-> C/C++ General-> Paths and Symbolsをクリックします。

[インクルード] タブ: [言語] -> [GNU C++ ]

[追加...] -> [ファイル システム] をクリックしてから、boost_1_52_0 という名前のフォルダーまたはその他のフォルダーを追加します。

Eclipse のインテリセンスを使用すると、必要なものが見つかりますが、ビルドに失敗します。

fatal error: boost/random/...: No such file or directory

なぜこれが起こっているのか分かりません。

着手したばかりの助けをいただければ幸いです。

22:34:02 **** Incremental Build of configuration Default for project TestProj****
make all 
g++ -O2 -g -Wall -fmessage-length=0    -c -o TestProj.o TestProj.cpp
TestProj.cpp:5:52: fatal error: boost/random/random_number_generator.hpp: No such file     or directory
<builtin>: recipe for target `TestProj.o' failed
compilation terminated.
make: *** [TestProj.o] Error 1

どうやら、ディレクトリにフォルダーを追加して、Eclipse が提供するインターフェイスに追加するのは簡単ではないようです。私は畏敬の念を抱いています。

よろしく、デーン

4

5 に答える 5

4

プロジェクトを右クリックし、[プロパティ]-> [C /C++一般]->[パスとシンボル]をクリックします。

[含まれるもの]タブ:[言語]-> [GNU C ++ ]

[追加...]->[ファイルシステム]をクリックしてから、boost_1_52_0というフォルダーまたはその他のフォルダーを追加します。

Eclipseのインテリセンスを使用すると、希望するものが見つかりますが、ビルドに失敗します。

はい、それは、EclipseCDTインテリセンスとインデクサーを外部参照と同期させるために必要な場合があります。

fatal error: boost/random/...: No such file or directory

なぜこれが起こっているのかわからない。

これは、プロジェクトのビルド方法の設定により、ビルドプロセスを自分で管理することを選択する可能性があるためです。 CDT C /C++ビルドプロパティ

その場合は、手動で管理されmakefileている環境とコンパイラ/リンカフラグの設定について通知する必要があります。

このような場合にEclipseCDTビルドプロパティを使用して手動で管理されたmakefileと通信する方法は、たとえば、前述のプロジェクトプロパティセクションの ビルド変数または環境設定を使用することです。ここに画像の説明を入力してください

于 2013-01-30T21:56:14.753 に答える
4

何を追加するかは、何を含めようとしているかによって異なります。Boost の場合、多数のヘッダーのみのライブラリがあり、静的/共有オブジェクト ライブラリ (シリアル化など) でのリンクが必要なライブラリがいくつかあります。

ヘッダーのみのライブラリ

ヘッダーのみのライブラリの場合は、すべてのヘッダー ファイルのベース ディレクトリを含めるだけです。では、フラグ (例: )gccを使用してディレクトリを追加します。Eclipse のマネージ makefile プロジェクトでは、次を使用して同じことを実現できます。-I-I C:/path/to/boost_52_0Properties > C/C++ Build > Settings > Tool Settings > GCC C++ Compiler > Directories

静的/共有オブジェクト ライブラリ

静的/共有オブジェクト ライブラリの場合、次の 2 つのオプションを指定する必要があります。

  1. -l--> ライブラリの名前から「lib」接頭辞とファイル接尾辞を除いたもの (例: libboost_serialization.dll->boost_serialization
  2. -L--> ライブラリ ファイルを探すディレクトリ。これは、ライブラリが非標準のパスにある場合にのみ必要です。

@Chris が指摘したように、管理された makefile プロジェクトの場合、これらのオプションは両方とも次の方法で設定できます。Properties > C/C++ Build > Settings > Tool Settings > GCC C++ Linker > Libraries

于 2013-01-31T20:48:39.560 に答える
1

Properties > C/C++ Build > Settings > Tool settings > ... Linker > Libraries何を検索しますか?コマンドラインからコンパイルするときに -l オプションを追加する場所です。

于 2013-01-12T01:25:36.973 に答える
-4

-I を makefile に追加することで解決しました。

BOOST =     C:/Users/neo/Documents/boost_1_52

CXXFLAGS =  -O2 -g -Wall -fmessage-length=0 -I$(BOOST)

OBJS =      p1.o

LIBS =      

TARGET =    p1.exe


$(TARGET):  $(OBJS)
    $(CXX) -o $(TARGET) $(OBJS) $(LIBS)

all:    $(TARGET)

clean:
    rm -f $(OBJS) $(TARGET)
于 2013-01-25T13:22:43.243 に答える