LNK1107 opengl32.dll in Visual Studio Express 2015



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

#include <iostream>
#include <GLFW/glfw3.h>
int main()
{
    if (!glfwInit())
    {
        std::cout << "Glfw initialization failedn";
    }
    return 0;
}

但是,当我尝试构建时,我收到以下错误:"LNK1107无效或损坏的文件:无法在0x2E8读取"。我的项目是 x64,所以我假设我可能将错误的 dll 与 32 位架构链接,并在记事本中检查了它的 PE 标头。但是它是"PE d"d 表示它是 x64,L 表示它是 x86。我从关于SO的另一个问题中获得了一个提示。

我尝试在不同目录中链接多个opengl32.dllC:WindowsSysWOW64opengl32.dllC:WindowsSystem32opengl32.dllC:WindowsWinSxSamd64_microsoft-windows-opengl_31bf3856ad364e35_10.0.14393.0_none_3c39618da01a51a8opengl32.dll

没有成功。我无法为我的特定情况找到任何答案,任何帮助将不胜感激。

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

最新更新