16
#ifndef UNO_ACTION_ 
#define UNO_ACTION_
namespace Uno
{
namespace Game
{
    class Game;
}
} // namespace

namespace Uno
{
namespace Action
{
using ::Uno::Game::Game;

class Action
{
public:
    virtual bool isDisposeable() = 0;
    virtual void takeAction(Game* game) = 0;
    virtual ~Action() {}
};

}
}
#endif

これらのコードをubuntu12.04でコンパイルすると、エラーのセットに戻ります。

action.h:4:1: error: unknown type name ‘namespace’
action.h:4:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
action.h:8:1: error: unknown type name ‘namespace’
action.h:8:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token

これらのエラーを解決するにはどうすればよいですか?

4

3 に答える 3

28

C++ コードを C コンパイラでコンパイルしようとしているようです。g++代わりに を使用し、ファイルに(ではなく)gccなどの C++ 拡張子を付けてみてください。.cpp.c

于 2012-11-28T09:53:36.650 に答える
1

同様の問題があり、この質問を見つけましたが、解決策が私のものと完全に一致しないため、ここに追加します。

私の場合、ヘッダー ファイルを .cpp ファイルと .c ファイルに含めていました。解決策は、ヘッダーの名前空間部分を分割することでした。これは明らかに .cpp ファイルでのみ必要だったからです。

于 2018-06-27T05:57:33.807 に答える