【发布时间】:2017-08-20 04:14:46
【问题描述】:
我终其一生都无法弄清楚哪里出了问题。我已经按照这里的教程进行操作:http://lazyfoo.net/SDL_tutorials/lesson01/windows/mingw/index.php
我无法让 g++ 编译。我收到以下错误:
testgame.c:1:21: fatal error: SDL/SDL.h: No such file or directory
#include "SDL/SDL.h"
这是文件中的代码:
#include "SDL/SDL.h"
int main( int argc, char* args[] )
{
//Start SDL
SDL_Init( SDL_INIT_EVERYTHING );
//Quit SDL
SDL_Quit();
return 0;
}
目录:
C:\MinGW\include\ - 这是我放置带有 *.h 文件的 SDL 文件夹的位置
C:\MinGW\lib\ - 这是我为 SDL 放置所有 lib 文件的地方
我还将 SDL.dll 放在我的文件/可执行目录中。
我正在使用以下编译:
g++ -o testgame.exe testgame.c -lmingw32 -lSDLmain -lSDL
我不知道我做错了什么。我已经搜索了所有内容,到目前为止没有任何效果。请帮忙!
谢谢, 特拉维斯
更新:
将包含语句更改为:
#include "C:/MinGW/include/SDL/SDL.h"
修复了最初的错误,但现在我收到了:
C:/Strawberry/c/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lSDLmain
C:/Strawberry/c/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lSDL
collect2.exe: error: ld returned 1 exit status
@cat 建议如下:
g++ -o testgame.exe testgame.c -lmingw32 -L.SDLmain -lSDL
然而这返回了这个错误:
C:/Strawberry/c/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lSDL
@vonaka 建议:
g++ -o testgame.exe testgame.c -lmingw32 -LC:/MinGW/lib/
但是,这会返回多个错误。
【问题讨论】:
-
尝试添加 -L。 (大写 L 点)在您的 -lSDLmain 之前
-
请注意,SDL1 是旧的。你应该学习 SDL2。
-
@cat 我已经尝试了这两个建议,但仍然收到并且仍然收到不同的错误。我会和他们一起更新问题。
-
@HolyBlackCat 我也尝试过 SDL2。我切换到 SDL1 尝试让它工作。
标签: c compiler-errors sdl mingw32