![](/img/trans.png)
[英]Visual Studio linker errors trying to use static lib in DLL (LNK2038, 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构建的静态库,则可能会发生LIBCMT冲突。 将LIBCMT添加到链接ignore libraries
的ignore libraries
中可以避免此问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.