【问题标题】:C - Staticaly link GLFW in Makefile MinGW32 - Windows10C - 在 Makefile MinGW32 中静态链接 GLFW - Windows 10
【发布时间】:2020-11-21 07:23:54
【问题描述】:

这是我第一次尝试将外部库链接到 C 文件。我读到我可以使用 Makefile,这就是我所拥有的:

all: src/main.c
    gcc src/main.c -o main.exe -IC:\src\C\GameTry\dependencies\include -LC:\src\C\GameTry\dependencies\lib -lglfw3 -lgdi32 -lglew32s

clean:
    rm *.o

我之所以包含 -lgdi32 是因为官方 glfw 文档指出:

当使用 MinGW 将应用程序与 GLFW 的静态版本链接时,您还必须显式链接 gdi32

此 makefile 有效,但 OpenGL 多次多次抛出警告 corrupt .drectve at end of def file 并且它可能多次抛出 undefined reference to '__security_cookie' 错误,导致程序无法编译。 我已经在互联网上四处寻找,但无法找到答案。我相信这些错误与默认的 MSVN 库有关,但我不确定

【问题讨论】:

  • "但是 OpenGL 会抛出警告" 不,OpenGL 不做这种事情。您得到的错误来自您的链接器,而不是 OpenGL。不知道您使用的是什么版本的 glfw 库,但它似乎不是正确的。

标签: c opengl makefile mingw static-linking


【解决方案1】:

如果您有与您的编译器和平台相匹配的libglfw3.a(确保不要混合使用win32 和win64),则不需要.def 文件。

无论如何,链接器正在获取.def 文件。

如果glfw3 有.def,可以尝试删除或重命名,然后重试吗?

【讨论】:

    猜你喜欢
    • 2018-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多