0

私はこのように設定されたプロジェクトを持っています:

Header (.h) files
 ________________                 _________ 
| Main Big Class |---------------| ModuleB |
| - libraries    |   _________   | -SubMod |    
|________________|--| ModuleA |  |_________|
                    | -SubMod |       |
                    |_________|   ____|____
                         |       | SubModB |
                     ____|____   |_________|
                    | SubModA |
                    |_________|

All Code (.cpp) files have #include "Main Big Class.h"

したがって、ModuleA のサブモジュールでは、ヘッダーにインクルードがなく、.cpp ファイルに#include "Main.h"しかありません。事業。ModuleA には、すべてのサブモジュールのインクルードがあり、ModuleA の任意のサブモジュールでベクトルと文字列を使用できます。

ModuleB に移動したので、新しいサブモジュールを追加し、以前と同じように実行しました。ModuleB には次のものがあります。

#include "SubModuleB1.h"
#include "SubModuleB2.h"

しかし、コンパイルしようとすると、Visual Studio は、B からのこれらのサブモジュールに文字列とベクトルがある行にエラーを表示します。

行にコメントを付けてコンパイルし、コメントを解除するとコンパイルされる場合がありますが、これを行ごとに実行する必要があり、エラーが 1 つあると、すべてを再度コメントしない限りコンパイルされません。

すでにクリーンアップとリビルドを試みましたが、うまくいきませんでした。なぜこれが起こるのかわかりません。

これはなぜ起こり、どうすれば修正できますか?

編集:エラーは1行あたり3です:

error C2143: syntax error : missing ';' before '<'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2238: unexpected token(s) preceding ';'
4

1 に答える 1

0

cpp ファイルに、次を追加します。

   using namespace std;

エラー C4430 については、次のように関数を定義するときにvoid忘れていると思いますint

    void myfunction (...)
    {
        //
    }

しかし、あなたのコードには

    myfunction()
    {
        //
     }
于 2013-08-29T17:40:24.047 に答える