1

階層という言葉を使用しましたが、それが正しいかどうかはわかりません。説明させてください。

私はああ持っています:

#include <iostream>
#include <vector>
using namespace std;

私はBhを持っています:

typedef vector<int> int_vector;
int_vector my_function(int x, int y);

最後に、Xhがあります。これは次のとおりです。

#include "A.h"
#include "B.h"

そしてX.cpp:

#include "X.h"

// and the rest

しかし、それをGCCでコンパイルすると、Bhで、ベクトルが定義されていないなどと表示されます。これは問題を説明するための例であることに注意してください。Linuxでコンパイルするために変換しようとしているプロジェクトは、VisualStudioのWindowsで完全にコンパイルされます。

ファイルを変更することはできますが、300以上のファイルのプロジェクトなので、信じられないほど効率的なヘルプや提案はありますか?

4

1 に答える 1

0

あなたが投稿したコードには何の問題もありませんgcc..

問題は見た目とは異なる可能性が高いです。たとえば、プロジェクトに複数のA.h(またはB.h、またはX.h) ファイルがあり、間違ったファイルがどこかに含まれている可能性があります。

.cpp問題のあるファイルを 1 つプリプロセッサ ( gcc -E) で実行し、結果を調べることをお勧めします。これにより、いつ何が含まれているかが正確にわかります。

于 2012-05-11T14:18:55.273 に答える