2011-07-19 11 views
1

私はそれ以下が放出EXEと単体テストexeファイルの両方で使用されるヘッダ「myHeaderFile.h」ファイルが見える有します。C++ヘッダファイル封入エラー

#ifndef MYHEADERFILE_H 
#define MYHEADERFILE_H 

namespace myname1 
{ 
namespace myname2 
{ 
    class A 
    { 
      ... 
    }; 
#ifdef MYTESTCLASS 
    class TestABase 
    { 
     ... 
    } 
#endif 
} 
} 
#endif 

私はとエラーを取得していますコンパイルすると、私は

#include "myUnitTest.h" 

// Definition stuff. 

を以下しているmyUnitTest.cppで今

#ifndef MYUNITEST_H 
#define MYUNITTEST_H 

#ifndef MYTESTCLASS 
#define MYTESTCLASS 1 
#endif 
#include "myHeaderFile.h" 
class TestClass : public myname1::myname2::TestABase 
{ 
    ... 
}; 
#endif 

以下のように今、私たちはmyUnitTest.hファイルファイルunittestのファイルを持っていますエラーC2039:TestABase:myname1のメンバーではない:: myname2' myUnitTest.h(31):エラーC2504:TestABase:基本クラス未定義

は何上記のエラーを引き起こしていますか?上記のエラーを解決するのに手伝ってください。注:myHeaderFile.hはライブラリから来ているので、このヘッダファイルを変更することはできません。

ありがとうございます!

+0

ユライBlahoによって示され、今では微細なコンパイルのようにコードスニペットは、変更されました。コードスニペットを修正してソリューションを追加する必要はありませんが、代わりに、回答を改善することで問題を解決する必要があります –

答えて

4

あなたはmyUnitTest.hmyHeaderFile.hを含める必要があります。ブロックした後のことを行います。

#ifndef MYTESTCLASS 
#define MYTESTCLASS 1 
#endif 

編集このよう

を、その後MYTESTCLASS定義に問題がある可能性が助けにはなりませんでした。他の場所にmyHeaderFile.hを含めますか?たぶん、あなたは、コンパイラオプションではなく、myUnitTest.hヘッダファイルでMYTESTCLASSを定義しようとすることができます。たぶん#ifdef MYTESTCLASSのチェックを外して問題が解決したかどうか確認することができます。

関連する問題