如何通过命令提示符在Windows上编译GLFW程序?

时间:2015-03-24 16:16:35

标签: c++ compilation compiler-errors linker glfw

我试图使用OpenGL& amp; GLFW。我已经将我当前的代码编译成Ubuntu没有问题,但是当我在Windows上尝试它时,我得到了各种未解决的外部错误。

我已将main.cppgame.h个文件包含在内:

#include<GLFW/glfw3.h>

我尝试过使用:

#define GLFW_DLL
#include<GLFW/glfw3.h>

然后关联glfwdll.lib而不是glfw3.lib,这解决了一些错误,但并非全部错误。无论哪种方式,我都在Ubuntu上使用静态库,所以我也想在Windows上使用它。

在研究之后,我尝试了User32.libkernel32.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文件。

我真的很困惑的是,我的游戏类对象文件编译没有任何问题,但是当我链接它时它会出错。

有谁知道如何编译?

1 个答案:

答案 0 :(得分:0)

我现在已经研究了一段时间了,我发现有人说如果使用32位二进制文​​件就可以了。当我遇到这个问题时,我一直在使用64位二进制文​​件。我下载了32位二进制文​​件并使用相同的方法进行了尝试,并且编译没有问题。

我不知道为什么会这样,但对于遇到我的问题的人来说,32位二进制文​​件有效。