我不能为我的生活弄清楚出了什么问题 . 我按照这里的教程:http://lazyfoo.net/SDL_tutorials/lesson01/windows/mingw/index.php
我无法编译 . 我收到以下错误:
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\
- 这是我将SDL文件夹放在* .h文件中的位置
C:\MinGW\lib\
- 这是我为SDL放置所有lib文件的地方
我还将SDL.dll放在我的文件/可执行文件目录中 .
我正在使用以下代码进行编译:
g++ -o testgame.exe testgame.c -lmingw32 -lSDLmain -lSDL
我不知道我做错了什么 . 我到处都搜索过,到目前为止还没有任何工作 . 请帮忙!
谢谢,特拉维斯
更新:
将include语句更改为:
#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/
但是,这会返回多个错误 .
2 回答
我已经弄清楚如何解决这个问题 . 我将所有相关的SDL和/或SDL2文件放在C:\中称为mingw_dev_lib的单独文件夹中 . 然后我明确地说明了lib文件夹的路径和这个新目录中的include文件夹,其中包含以下内容:
在完成这些步骤后,编译成功 . 虽然它在尝试访问这些文件和标准C:\ MinGW目录时无法编译,但这很奇怪 .
您使用的g似乎不是您复制SDL库文件的那个 . 另一个程序可能已经安装了自己的MinGW并设置了它的系统路径(例如Perl使用MinGW来编译模块) . 你可以找到:
要解决此问题,您可以更改系统路径(需要重新打开shell)或重命名未使用的MinGW文件夹 .