繁体   English   中英

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

[英]How to compile a GLFW program on Windows via command prompt?

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

令我真正困惑的是,我的游戏类目标文件编译时没有任何问题,但是链接时出现错误。

有人知道如何编译吗?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM