我正在尝试编译一些非常简单的代码,以确保在编写几行代码之前没有任何无法预料的链接器问题。
#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.dll
:C:\Windows\SysWOW64\opengl32.dll
,C:\Windows\System32\opengl32.dll
和C:\Windows\WinSxS\amd64_microsoft-windows-opengl_31bf3856ad364e35_10.0.14393.0_none_3c39618da01a51a8\opengl32.dll
没有成功。我无法为我的具体案例找到任何答案,我们将非常感谢任何帮助。
答案 0 :(得分:0)
在Windows上,您必须链接导出.lib库,而不是.dll。导出libs通常是在编译.dll时生成的,但.lib for OpenGL是一个独立于opengl32.dll创建的API库,它是视频驱动程序包的一部分。你还需要GLFW的.lib。