C++ 用g编译SDL的问题++

C++ 用g编译SDL的问题++,c++,compilation,g++,mingw,sdl,C++,Compilation,G++,Mingw,Sdl,当我尝试编译文件时 #include "SDL2\SDL.h" int main( int argc, char* argv[] ) { //Start SDL SDL_Init( SDL_INIT_EVERYTHING ); //Quit SDL SDL_Quit(); return 0; } -命令行上的SDL wiki示例 g++ -o SDL_Test.exe SDL_Test.cpp -lmingw32 -lSDLmain -lSDL 我

当我尝试编译文件时

#include "SDL2\SDL.h"

int main( int argc, char* argv[] )
{
   //Start SDL
   SDL_Init( SDL_INIT_EVERYTHING );

   //Quit SDL
   SDL_Quit();

   return 0;    
}
-命令行上的SDL wiki示例

g++ -o SDL_Test.exe SDL_Test.cpp -lmingw32 -lSDLmain -lSDL
我得到一个错误,说我的计算机找不到-lSDLmain和-lSDL。如果没有库的东西,它很难解释函数

我认为这个问题与-l有关,但我不知道它们是干什么的

我的电脑是64位的,如果有区别的话。我将x84_64-mingw32 bin、include和lib复制到C:\MinGW版本中

我想用一个明确的方法来解决我的问题,但是如果你能试着解释一下-l和其他东西,那就太棒了


-:-greatwolf在聊天中回答:原来我使用的是32位MinGW和64位SDL文件;我只需要将64位文件替换为32位版本。此外,我还必须将编译器指向我的SDL2.dll文件。End compile命令是g++-o SDL_Test.exe SDL_Test.cpp-LC:\MinGW\lib-lmingw32-lSDL2main C:\MinGW\bin\SDL2.dll。您必须确保使用-L编译器标志为库指定适当的搜索路径。否则它将不知道在哪里查找链接。

libsdlmain.a和libsdl.a在哪里?SDL_Init和SDL_Quit需要由SDL在某处实现,这两个文件告诉链接器它在哪里。我在C:\MinGW\lib.g++-o SDL_Test.exe SDL_Test.cpp-LC:\MinGW\lib-lmingw32-lSDL2main-lSDL2Many谢谢;这消除了“找不到”错误,但现在它表示对SDL_Init/Quit的“未定义引用”。我尝试添加-mwindows,但没有成功。有没有可能,即使我有一台64位的计算机,我下载了32位的MinGW,这就是为什么它不能工作的原因,或者在这种情况下它甚至不能达到这一点?尝试用sdl2.dll替换-lSDL2。确保指定其完全绝对路径。这是如何完成的?libSDL2main.a和libSDL2.a的路径是C:\MinGW\lib。如果库名为libSDL2main.a和libSDL2.a,则必须使用2指定-lSDL2main和-lSDL2。