c++ - 库正常编译时出现链接器错误 (LNK2001)

标签 c++ winapi visual-c++ glew

我正在尝试编译我正在使用的小型 2D 引擎。到目前为止一切顺利,但自从我包含 GLEW(因为我想开始处理一些片段着色器)以来,测试程序拒绝构建。为了澄清,我将引擎构建为静态库 (Mage2D.lib),然后构建使用该库的测试程序。

这是我遇到的错误:

1>Link:
1>  libpng15.lib(pngget.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance
1>LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>Mage2D_D.lib(root.obj) : error LNK2001: unresolved external symbol __imp__glewIsSupported@4
1>Mage2D_D.lib(root.obj) : error LNK2001: unresolved external symbol __imp__glewInit@0
1>C:\Users\Jesse\Documents\Visual Studio 2010\Projects\Rose\Debug\MageTest.exe : fatal error LNK1120: 2 unresolved externals
1>
1>Build FAILED.

现在我通常意识到这意味着我没有将正确的库包含到我的测试程序 (glew32.lib) 中。但这里不可能是这种情况,因为我将 glew.c 构建到 Mage2D.lib 中。 GLEW 实际上是 Mage2D 源代码的一部分,因为它似乎很方便地使用一个包含四个文件且无论如何都是引擎不可或缺的一部分的程序来执行此操作。

我按照 GLEW 在其网站上关于如何构建 GLEW 并将其包含到我的项目中的说明进行了操作,但我不断收到此错误。

这到底是怎么回事?

最佳答案

我已经检查了 glew.h,我很确定您需要在包含 glew.h 之前添加 GLEW_STATIC 定义:

#define GLEW_STATIC
#include "GL/glew.h"

关于c++ - 库正常编译时出现链接器错误 (LNK2001),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14046272/

相关文章:

c++ - 具有推导类模板特化类型的变量声明符中的冗余括号

c++ - 无法正确递归目录

c# - 是否可以检测 Windows 何时自动断开低级键盘 Hook ?

c++ - win32 c++ 所有者绘制带有透明图像的按钮

c++ - 确定 Windows 7 中当前双击速度设置的可编程方式

java - C++中的DWORD数据类型及其在Java中的转换

c++ - C++合并排序检查以查看列表中是否有数字

c++ - 静态模板 constexpr 错误

使用 stringstream 的 C++ String 到 double 转换给出精度错误

c++ - 使用接口(interface)类作为另一个类中的成员类型