我试图使用OpenGL& amp; GLFW。我已经将我当前的代码编译成Ubuntu没有问题,但是当我在Windows上尝试它时,我得到了各种未解决的外部错误。
我已将main.cpp
和game.h
个文件包含在内:
#include<GLFW/glfw3.h>
我尝试过使用:
#define GLFW_DLL
#include<GLFW/glfw3.h>
然后关联glfwdll.lib
而不是glfw3.lib
,这解决了一些错误,但并非全部错误。无论哪种方式,我都在Ubuntu上使用静态库,所以我也想在Windows上使用它。
在研究之后,我尝试了User32.lib
和kernel32.lib
,删除了默认库(使用Zl),以及其他一些我无法记住的事情(但他们没有工作)。
我当前的编译命令如下所示:
@echo off
cl /Zl /MT game.cpp /I C:\dev\include /link "C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64\User32.lib" "C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64\kernel32.lib" C:\dev\lib\glfw3.lib C:\dev\lib\OpenGL32.lib
cl /Zl main.cpp /I C:\dev\include /link C:\dev\lib\glfw3.lib C:\Users\Daniel\projects\game\game.obj C:\dev\lib\OpenGL32.lib "C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64\User32.lib" "C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64\kernel32.lib"
有了这个,目标文件编译没有问题,但是对于主文件,我一直在我的目标文件中得到所有glfw和openGl函数(无论我是否使用它们)的未解决的外部错误,它们来自目标文件和glfw.lib文件。
我真的很困惑的是,我的游戏类对象文件编译没有任何问题,但是当我链接它时它会出错。
有谁知道如何编译?
答案 0 :(得分:0)
我现在已经研究了一段时间了,我发现有人说如果使用32位二进制文件就可以了。当我遇到这个问题时,我一直在使用64位二进制文件。我下载了32位二进制文件并使用相同的方法进行了尝试,并且编译没有问题。
我不知道为什么会这样,但对于遇到我的问题的人来说,32位二进制文件有效。