【问题标题】:How to compile a GLFW program on Windows via command prompt?如何通过命令提示符在 Windows 上编译 GLFW 程序?
【发布时间】:2015-03-24 16:16:34
【问题描述】:

我正在尝试使用 OpenGL 和 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 文件。

对此我真正感到困惑的是,我的游戏类对象文件编译时没有任何问题,但是当我链接它时却出现错误。

有人知道怎么编译吗?

【问题讨论】:

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


    【解决方案1】:

    我一直在研究这个问题,我发现有人说如果你使用 32 位二进制文​​件它就可以工作。当我遇到这个问题时,我一直在使用 64 位二进制文​​件。我下载了32位的二进制文件,用同样的方法试了一下,编译没问题。

    我不知道为什么会这样,但是对于遇到我的问题的任何人来说,32 位二进制文​​件都可以。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-05
      • 2019-08-01
      相关资源
      最近更新 更多