1

g++ と jamroot ファイル (jamroot.jam) を使用してプロジェクトをコンパイルしています。正しいディレクトリが含まれていても、ファイルが認識されない理由がわかりません。

出力は次のとおりです。

"g++"  -ftemplate-depth-128 -O0 -fno-inline -Wall -g -fPIC  -DLINUX  \
  -I"/home/oumaya/docs/UT_Cpp_Test/main/inc" \
  -I"/home/oumaya/docs/UT_Cpp_Test/main/inc/include/cppunit" \
  -I"/home/oumaya/docs/UT_Cpp_Test/main/inc/include/cppunit/ui/qt" \
  -I"/usr/share/boost" -c -o "bin/build/gcc-4.6/debug/src/main.o" "src/main.cpp"

In file included from src/main.cpp:6:0:
/home/oumaya/docs/UT_Cpp_Test/main/inc/UT_Instrument_Test.hpp:7:45: fatal error:
  cppunit/extensions/HelperMacros.h :  No such file or directory  
4

5 に答える 5

2

あなたは1つ欠けています:

-I/home/oumaya/docs/UT_Cpp_Test/main/inc/include/

その理由は、次のように含めるためです。

#include "cppunit/extensions/HelperMacros.h"

フルパスは

/home/oumaya/docs/UT_Cpp_Test/main/inc/include/cppunit/extensions/HelperMacros.h

したがって、コンパイル済みに相対パスを伝える必要がありますcppunit/extensions/HelperMacros.h

于 2012-05-15T12:01:46.187 に答える
2

入力ファイルのパスを指定してい[...]inc/include/cppunitますが、ヘッダーを次のように参照していcunit/extensions/HelperMacros.h ます。インクルードディレクトリを指定するだけです(またはヘッダーパスをに変更します)[...]inc/include/cppunit[...]inc/include/cppunit/cunit/extensions/HelperMacros.h[...]inc/includeextensions/HelperMacros.h

于 2012-05-15T12:02:53.420 に答える
2

比較:

あなたの命令 -

-I"/home/oumaya/docs/UT_Cpp_Test/main/inc/include/cppunit"

エラーメッセージ:

fatal error: cppunit/extensions/HelperMacros.h : No such file or directory

/home/oumaya/docs/UT_Cpp_Test/main/inc/includeつまり、「インクルード ルート」は、「cppunit」サブディレクトリ (ディレクティブに明らかに記載されている) ではなく、にあることが期待されます#include

または、ステートメントが間違っているため、 の前に#include置くべきではありません。cppunit/extensions/HelperMacros.h

于 2012-05-15T12:04:31.690 に答える
1

Ubuntuを実行しているときに、正しいものを簡単にインストールできることがわかりました

cppunit/extensions/HelperMacros.h または cppunit/BriefTestProgressListener.h の場合:

sudo apt-get install libcppunit-dev
于 2014-12-18T02:40:37.443 に答える
1

ファイルが見つからないだけです。インクルードしようとしてcppunit/extensions/HelperMacros.hいるので、ビルド出力のすべての-Iインクルード パスを調べて、それらが連結されてそのファイルへの有効なパスになるかどうかを確認します。ディレクトリが不足しているため、それらは機能しません。

次のステップは、cppunit のインストールを実行し、ファイルを見つけることです。

find <cppunit root> -name HelperMacros.h

インクルードで終わるものを見つけたらcppunit/extensions/HelperMacros.h、そのビットを取り除き、パスの最初の部分を-Iコンパイル コマンドの追加のインクルード パスとして使用します。

于 2012-05-15T12:02:18.870 に答える