【问题标题】:LNK2019 unresolved external symbol using GLFWLNK2019 使用 GLFW 无法解析的外部符号
【发布时间】:2019-03-05 23:40:21
【问题描述】:

可能是 GLFW 上被问到最多的问题。但我已经尝试了所有我能想到的方法,在谷歌搜索了 3 个小时后我放弃了。

我能够理解的是,这个错误发生在:

函数的编译代码对符号进行引用或调用,但该符号未在链接器指定的任何库或目标文件中定义。

这意味着我一定只是未能按照我的理解链接库。

好的,位于:“C:\dev\MyVSProjects\MyWorld\dependencies\OpenGL\GLFW\lib-vc2015” 是我的 glfw3.lib 文件。

在我的解决方案属性页中,我将“附加库目录”设置为“$(SolutionDir)dependencies\OpenGL\GLFW\lib-vc2015”,这是上述文件相对于 .sln 文件所在的位置。

最后在链接器中,我将 Additional Dependencies 设置为:“opengl32.lib;glfw3.lib;%(AdditionalDependencies)”

这很简单,我只是不明白怎么不能正确链接。

顺便说一句,我在我的项目中使用了glad,它可以正常工作,同时也找到了glfw3.h 和glad.h 文件。 (是的,我首先包括glad.h)。

然而,每个 GLFW 函数都会出现未解决的外部符号错误。

所以我的问题是为什么我仍然收到这些未解决的外部符号链接错误。

【问题讨论】:

    标签: c++ visual-studio opengl glfw lnk2019


    【解决方案1】:

    好吧,事实证明我做的一切都是正确的。 64 位二进制文​​件根本不适用于 Visual Studio 17...

    如果您遇到同样的问题,只需获取 32 位二进制文​​件。

    【讨论】:

    • 他们确实有效。您只需要下载源代码并为 64 位平台构建它们。
    • Yes Nadir 正如我所说的预构建二进制文件不起作用。至少它不适合我和其他很多人..
    • 如何构建二进制文件?您首先需要使用 cmake 构建 Visual Studio 文件。运行 cmake 时,您必须选择是为 x86 还是 x64 构建它们。如果您选择 x64,您可以在构建之前打开 GLFW 解决方案并定位 x64。我不时构建它们以使用最新更新来更新我的二进制文件,从未遇到过问题
    猜你喜欢
    • 2020-07-09
    • 2021-01-26
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多