Visual Studio Express 2015中的LNK1107 opengl32.dll

时间:2017-01-13 01:10:14

标签: c++ visual-studio dll visual-studio-2015 visual-studio-express

我正在尝试编译一些非常简单的代码,以确保在编写几行代码之前没有任何无法预料的链接器问题。

#include <iostream>
#include <GLFW/glfw3.h>

int main()
{
    if (!glfwInit())
    {
        std::cout << "Glfw initialization failed\n";
    }

    return 0;
}

但是当我尝试构建时出现以下错误:“LNK1107无效或损坏文件:无法读取0x2E8”。我的项目是x64所以我想我可能是将错误的dll与32位架构连接起来并在记事本中检查了它的PE头。然而,它是“PE d”d表示它是x64而L表示它是x86。我在另一个问题上提到了一个提示。

我尝试在不同目录中关联多个opengl32.dllC:\Windows\SysWOW64\opengl32.dllC:\Windows\System32\opengl32.dllC:\Windows\WinSxS\amd64_microsoft-windows-opengl_31bf3856ad364e35_10.0.14393.0_none_3c39618da01a51a8\opengl32.dll

没有成功。我无法为我的具体案例找到任何答案,我们将非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

在Windows上,您必须链接导出.lib库,而不是.dll。导出libs通常是在编译.dll时生成的,但.lib for OpenGL是一个独立于opengl32.dll创建的API库,它是视频驱动程序包的一部分。你还需要GLFW的.lib。