我正在尝试在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,但当然这并没有起作用。
main()
函数上。当使用 SDL 时,你需要确保你的main
函数签名看起来像int main(int, char **)
。你的main
函数是这样的吗? - HolyBlackCatWinMain(HISTANCE *, HINSTANCE *, char *, int)
而不是main(int,char**)
。为了包装这个,SDL通常会附带一个名为SDLmain
的库来调用常规的main函数。 - PeterT-lSDL2
之前添加-lSDL2main
。我忘记了这个标志。你可以从WinMain(..)
手动进行 SDL 初始化,但这不是一个可移植的解决方案。 - HolyBlackCat