【问题标题】:MSYS2 OpenGL SetupMSYS2 OpenGL 设置
【发布时间】:2016-02-27 13:33:59
【问题描述】:

我正在尝试在 MSYS2 上使用 OpenGL。我安装了 mingw-w64 包,如 SDL2、glew、glm、mesa 等。但是当我尝试编译类似的东西时;

    gcc main.c -o main -lSDL2 -lGLEW -lGLU -lGL

这就是我在 Linux 上编译东西的方式,所以我认为它会是相似的。但是 -lGL 给我带来了问题。我找不到 MSYS2 的任何 OpenGL 库。我按照我说的安装了台面,但没有运气。我应该使用附带驱动程序的 Windows 版本并链接到该版本吗?我不知道我该怎么做。

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

【问题讨论】:

    标签: opengl msys2


    【解决方案1】:

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

    试试-lglew32 -lglu32 -lopengl32

    【讨论】:

    • 谢谢,为此工作。现在链接器说“C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crt0_c.c:18: undefined reference to `WinMain' collect2.exe: error: ld返回 1 个退出状态”一定是关于 C 运行时的。
    • @meguli 我认为问题出在您的main() 上。使用 SDL 编写时,您需要确保您的 main 签名看起来像 int main(int, char **)。这是你的主要的样子吗?
    • @meguli Windows下GUI应用的入口点实际上是WinMain(HISTANCE *, HINSTANCE *, char *, int)而不是main(int,char**)。为了环绕该 SDL,通常会附带一个调用常规 main 的 SDLmain 库。
    • @meguli 表示需要在-lSDL2前加上-lSDL2main。我忘记了那面旗帜。您可以WinMain(..) 进行手动 SDL 初始化,但这不是一个可移植的解决方案。
    • 事实上文档说你需要链接“sdl2-config --libs”输出的所有东西。
    猜你喜欢
    • 1970-01-01
    • 2023-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    相关资源
    最近更新 更多