C++:库SDL_image.h中的奇怪错误"extern之前的预期初始化程序"

Mag*_*nus 8 c++ sdl sdl-image

我目前正在尝试使用SDL和Box2D进行简单的游戏.不幸的是,我添加的代码使角色拍摄proyectiles非常麻烦我甚至无法开始计算错误.为了解决这个问题,我添加了一些代码来显示游戏中的一些调试信息.不幸的是,在处理了所有错误之后,出现了一个奇怪的错误,这个错误在弹出之前没有出现:

/usr/include/SDL/SDL_image.h|34|error: expected initializer before ‘extern’|
||=== Build finished: 1 errors, 0 warnings ===|
Run Code Online (Sandbox Code Playgroud)

SDL_image.h中导致此问题的代码是:

/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
extern "C" {
#endif
Run Code Online (Sandbox Code Playgroud)

我不知道是什么原因导致出现此错误消息,或者如何解决此问题.我的代码上没有错误消息.我不认为图书馆有任何问题,因为我做的其他游戏只编译文件.这是弹出的唯一错误.

Mik*_*our 28

看看这个之前包含的头文件的结尾.我的猜测是;在课程定义之后缺少一个.

  • +1,但我猜这是一个全局变量声明,而不是一个类声明。在 g++ 4.3.4 中,代码 `int x extern int y;` 给出相同的错误,而 `class X{} extern int y;` 给出不同的错误。 (2认同)
  • 是的,一个功能后有一个缺失的分号.谢谢! (2认同)
  • 天哪,男人。我爱你!我花了一个多小时寻找我的错误,最后你救了我。有一个失踪; 在我的头文件的最后一个函数上。非常感谢! (2认同)