繁体   English   中英

Windows中使用Visual Studio的链接器错误(LNK2005)

[英]Linker errors (LNK2005) in Windows using Visual Studio

我正在尝试使用包含FTGL(取决于FreeType)的VS2012(也提供2010)在Windows中构建项目。

当我尝试构建项目时,我看到大量以下LNK2005错误:

Error 204 error LNK2005: "private: __thiscall FTFont::FTFont(class FTFontImpl *)" (??0FTFont@@AAE@PAVFTFontImpl@@@Z) already defined in FTFont.obj  buildDir\ftgl.lib(ftgl.dll)
Error 238 error LNK2005: "private: __thiscall FTGlyph::FTGlyph(class FTGlyphImpl *)" (??0FTGlyph@@AAE@PAVFTGlyphImpl@@@Z) already defined in FTGlyph.obj    buildDir\ftgl.lib(ftgl.dll)
Error 249 error LNK2005: "private: __thiscall FTLayout::FTLayout(class FTLayoutImpl *)" (??0FTLayout@@AAE@PAVFTLayoutImpl@@@Z) already defined in FTLayout.obj  buildDir\ftgl.lib(ftgl.dll)
Error 213 error LNK2005: "protected: __thiscall FTFont::FTFont(char const *)" (??0FTFont@@IAE@PBD@Z) already defined in FTFont.obj  buildDir\ftgl.lib(ftgl.dll)

我使用他们提供的msvc-> vc8解决方案(升级到vs2010)构建了FTGL库。 这为调试和发布创建了以下文件:

ftgl_static.lib
ftgl.lib
ftgl.dll

将这些库放到我的vc lib目录中,并将它们添加到“ 项目设置”->“链接器”->“其他依赖项”,这样我就有了以下几行:

ftgl.lib
glui32.lib
glut32.lib
glu32.lib
opengl32.lib
freetype.lib
%(AdditionalDependencies)

没关系,因为我没有任何未解决的依赖关系,但是我的项目中有以下内容-> C / C ++->其他包含目录

$(SolutionDir)..\..\code\lib\freetype2\include\freetype2\config
$(SolutionDir)..\..\code\lib\freetype2\include\freetype2
$(SolutionDir)..\..\code\source
$(SolutionDir)
$(SolutionDir)..\..\code\lib\FTLayout
$(SolutionDir)..\..\code\lib\FTGlyph
$(SolutionDir)..\..\code\lib\FTGL
$(SolutionDir)..\..\code\lib\FTFont
$(SolutionDir)..\..\code\lib
$(SolutionDir)..\..\code\headers
%(AdditionalIncludeDirectories)

尝试玩忽略依赖性,但没有得到任何帮助。 我还在这里和其他站点上尝试了各种解决方案,包括:

在出现此问题之前,我已经看到此gamedev 主题上描述的LNK2019错误。 通过将lib添加到项目中的其他依赖项可以解决此问题,但是引入了LNK2005错误。

如果有帮助,则该项目将构建在OS X中; 但是,对于Windows,这些库有所不同(OS X中的dylib与Win中的lib / dll)。

谁能帮助我解决这些错误?

确保在code generation下使用相同的runtime library选项生成了lib

  • / MD和/ MDd用于多线程(调试)
  • / MT和/ MTd用于多线程DLL(调试)

相互依赖的所有项目都应具有相同的选项。


另外,如果导入使用/ MD和/ MDd构建的静态库,则可能会发生LIBCMT冲突。 将LIBCMT添加到链接ignore librariesignore libraries中可以避免此问题。

暂无
暂无

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

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