【发布时间】:2015-03-24 16:16:34
【问题描述】:
我正在尝试使用 OpenGL 和 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 文件。
对此我真正感到困惑的是,我的游戏类对象文件编译时没有任何问题,但是当我链接它时却出现错误。
有人知道怎么编译吗?
【问题讨论】:
标签: c++ compilation compiler-errors linker glfw