0

私は本当にこれをどうすればいいのかわかりません。iOS と Linux サーバーで共有されているコードがあります。iOS LLVM コンパイラは正常にコンパイルされますが、Linux で g++ を使用してコンパイルしようとすると、多くのエラーが発生します。最初のものは次のとおりです。

RemoveLight.h: In member function ‘void RemoveLight<WindowDerived, ChunkDerived, dim>::lightRemoveEditStart()’:
RemoveLight.h:49:17: error: ‘FloodFillLight’ was not declared in this scope
RemoveLight.h:49:45: error: expected primary-expression before ‘,’ token
RemoveLight.h:49:59: error: expected primary-expression before ‘,’ token

これは 49 行目です。

FloodFillLight<WindowDerived, ChunkDerived, dim>(x, i, z, target, chunkWindow);

FloodFillLight.h が RemoveLight.h に含まれているので、それは問題ではなく、テンプレートはすべて .h ファイルで宣言されています。テンプレートの一部が cpp ファイルに定義されていません。誰にもアイデアがありますか?

4

1 に答える 1

0

ファイルの前処理を試し、FloodFillLight が使用される前に宣言されていることを確認してください。

迷子の #ifdef がインクルードを混乱させている可能性があります。

于 2013-03-07T20:07:02.260 に答える