当库编译好时,链接器错误(LNK2001)

时间:2012-12-26 21:07:36

标签: 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并将其包含在我的项目中的信,但我一直收到这个错误。

到底是怎么回事?

1 个答案:

答案 0 :(得分:0)

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

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