MSYS2 OpenGL设置

MSYS2 OpenGL设置,opengl,msys2,Opengl,Msys2,我正在尝试在MSYS2上使用OpenGL。我安装了mingw-w64软件包,如SDL2、glew、glm、mesa等,但当我试图编译以下内容时: gcc main.c -o main -lSDL2 -lGLEW -lGLU -lGL 这就是我在Linux上编译东西的方式,所以我认为它应该是类似的。但是,lGL给我带来了麻烦。我找不到任何适用于MSYS2的OpenGL库。我按我说的安装了mesa,但运气不好。我应该使用驱动程序附带的Windows版本和链接吗?但我不知道我该怎么做 我将O

我正在尝试在MSYS2上使用OpenGL。我安装了mingw-w64软件包,如SDL2、glew、glm、mesa等,但当我试图编译以下内容时:

    gcc main.c -o main -lSDL2 -lGLEW -lGLU -lGL
这就是我在Linux上编译东西的方式,所以我认为它应该是类似的。但是,lGL给我带来了麻烦。我找不到任何适用于MSYS2的OpenGL库。我按我说的安装了mesa,但运气不好。我应该使用驱动程序附带的Windows版本和链接吗?但我不知道我该怎么做


我将OpenGL32.dll和lib文件从Windows复制到mingw64/lib文件夹,并将它们重命名为libGL,但这当然不起作用。

如果我没记错的话,在Windows上这些库的调用是不同的


试试
-lglew32-lglu32-lopengl32

谢谢,我为此付出了努力。现在链接器说“C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crt0_C.C:18:对'WinMain'collect2.exe的未定义引用:错误:ld返回了1个退出状态”必须是关于C运行时的。@meguli我认为问题出在
main()
上。使用SDL编写时,您需要确保您的
main
签名看起来像
intmain(int,char**)
。这就是main的样子吗?@meguli Windows下GUI应用程序的入口点实际上是
WinMain(HISTANCE*,HINSTANCE*,char*,int)
而不是
main(int,char**)
。为了解决这个问题,SDL通常附带一个调用常规main的
SDLmain
库。@meguli这意味着您需要在
-lSDL2
之前添加
-lSDL2main
。我忘了那面旗子了。您可以从WinMain(…)进行手动SDL初始化,但这不是一个可移植的解决方案。事实上,文档说明您需要链接“sdl2配置--libs”输出的所有内容。