所以我开始了一个带有C ++和SDL 2的空闲时间游戏项目,并遇到了一个令人费解的问题。
我有一个头文件,我打算存储全局使用的数据。
0 0 0 0 0 0...
现在,当我在其他地方引用窗口时,一个"未定义的引用"错误出现了。我尝试在main函数之前添加一个null定义,但它仍然不起作用。
所以问题出现在这里:
class Constants {
public:
static SDL_Window* window;
const static int w = 640;
const static int h = 480;
};
出了什么问题,我该怎么做?我之前使用SDL 1成功编码。
答案 0 :(得分:1)
至少,你需要在标题中转发声明SDL_Window类。
此外,如果以上是链接器错误,您需要让编译器知道要链接的库以及在哪里找到它。
答案 1 :(得分:0)
我在自己的游戏开发过程中遇到过类似的问题(虽然我使用的是Allegro)
您需要做的是定义相关的变量/类。你只宣布了它。你现在需要定义它。
// constants.h
class Constants {
public:
static SDL_Window* window;
const static int w = 640;
const static int h = 480;
};
// constants.cpp
#include "constants.h"
Constants::SDL_Window *window;
如果我的语法有点偏差,我很乐意得到纠正。