【发布时间】:2018-01-09 04:30:21
【问题描述】:
我正在制作一个简单的游戏,并希望将 SDL 用于图形。我运行 linux Ubuntu,并使用 sublime 文本编辑器、g++ 编译器,并且我正在使用 c++ 进行编码。我下载了 SDL 并关注了these steps。
按照这些步骤操作后,所有 SDL 错误都不再出现。但是,标志变量不起作用。
这是代码:
#include <SDL2/SDL.h>
Risk() {
SDL_Init(SDL_INIT_HAPTIC);
window = SDL_CreateWindow("Board",SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 500,500, SDL_WINDOW_RESIZABLE);
SDL_GetError();
}
我的编译器出现的错误是:
tom@TBT-XPS-13-9360:~/Documents/Subjects/CS/Fun/Risk$ g++ -std=c++14
Game.cpp -W/tmp/ccLwSxiL.o: In function `Risk::Risk()':
Game.cpp:(.text._ZN4RiskC2Ev[_ZN4RiskC5Ev]+0x1f): undefined reference
to `SDL_Init'
Game.cpp:(.text._ZN4RiskC2Ev[_ZN4RiskC5Ev]+0x44): undefined reference
to `SDL_CreateWindow'
Game.cpp:(.text._ZN4RiskC2Ev[_ZN4RiskC5Ev]+0x54): undefined reference
to `SDL_GetError'
collect2: error: ld returned 1 exit status
我认为错误是 SDL 库在错误的位置,或者 Sublime 不知道它们在哪里。
【问题讨论】:
-
那些是链接器错误,这意味着链接器找不到它需要的库来满足丢失的符号。最明显的原因是您使用的是
C++ Single File内置构建系统,它不包含任何额外的库。
标签: c++ linux sublimetext3 sdl