私は階層という言葉を使いましたが、それが正しいかどうかはわかりません!私に説明させてください。gccはインクルードファイルの階層を尊重しません
私はああを持っている:
#include "A.h"
#include "B.h"
そしてX.cpp:
最後に私があるのXhを、持っているtypedef vector<int> int_vector;
int_vector my_function(int x, int y);
:私はBhのを持っている
#include <iostream>
#include <vector>
using namespace std;
#include "X.h"
// and the rest
しかし、GCCでコンパイルすると、B.hで定義されていないベクトルなどと表示されます。これは問題を説明するための例であることに注意してください。私がLinux上でコンパイルするために変換しようとしているプロジェクトは、Visual Studioの下でWindows上で完全にコンパイルされます。
私はファイルを変更することができましたが、300以上のファイルプロジェクトですので、非常に効率的なヘルプや提案はありますか?
このエラーは愚かでした。いくつかの#if #else #endif部分では、コードのブロックが名前空間の括弧を早く閉じていたので、すべてをスティープさせる原因になりました!通常、それはコンパイルすると考えられます。私はそのアプローチを以前に使っていました。そして、OpenGL(少なくとも1つのバージョン)に共通しています。 – widgg