【发布时间】:2013-03-10 19:20:28
【问题描述】:
我有一个非常简单的 C 程序是 taken from the SDL documentation:
#include <stdlib.h>
#include "SDL.h"
int main() {
if (SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO) < 0) {
return EXIT_FAILURE;
}
atexit(SDL_Quit);
return EXIT_SUCCESS;
}
我使用sdl-config --cflags --libs 为clang 提供参数。它能够链接到 SDL 标头,但无法链接到 SDL 库:
/tmp/example-f2Tgg6.o: In function `main':
example.c:7: undefined reference to `SDL_Init'
example.c:8: undefined reference to `SDL_Quit'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我尝试用 gcc 编译并遇到同样的问题,所以我觉得我错过了一些明显的东西。我正在运行 xubuntu 11.10,以防万一。
【问题讨论】:
-
找不到库 -> SDL.lib 和 sdlmain.lib
-
我应该在哪里寻找 SDL.lib 和 sdlmain.lib?这些是
.a文件的 Windows 等价物吗?因为我相当确定ld正在找到 SDL 库,因为如果我将 -lSDL 更改为 -lrubbish 我会得到/usr/bin/ld: cannot find -lrubbish。 -
将您的 SDL.dll 放在可执行文件夹中,并将 SDL.lib 放在您告诉 IDE/编译器它们应该放在的位置。