C++ 异常未解析的外部符号错误

C++ 异常未解析的外部符号错误,c++,visual-studio-2010,dll,linker,C++,Visual Studio 2010,Dll,Linker,我有一个使用freetype库编译的项目 从那时起,我的操作系统已重新安装,因此Visual Studio 2010也已重新安装 我已经重新包含并重新安装了所有的.lib.dll和头文件。出于某种原因,现在如果我用发行版配置运行程序,它运行得很好。但是如果我切换到调试配置,它会在freetype库函数中从链接器中提供未解决的外部符号错误 现在我确信两个配置的C++目录是相同的,因为我在解决方案设置中使用所有配置标签重新设置它们。除此之外,两种配置“附加目录/附加依赖项设置”也是以相同的方式设置的

我有一个使用freetype库编译的项目

从那时起,我的操作系统已重新安装,因此Visual Studio 2010也已重新安装

我已经重新包含并重新安装了所有的.lib.dll和头文件。出于某种原因,现在如果我用发行版配置运行程序,它运行得很好。但是如果我切换到调试配置,它会在freetype库函数中从链接器中提供未解决的外部符号错误

<>现在我确信两个配置的C++目录是相同的,因为我在解决方案设置中使用所有配置标签重新设置它们。除此之外,两种配置“附加目录/附加依赖项设置”也是以相同的方式设置的

我能在项目文件夹中找到的版本和调试文件夹之间的唯一区别是调试文件夹中存在一个名为“vc100.idb”的文件,这是一个最小的重建依赖性文件。这看起来很有希望,但移除它并没有产生任何效果,所以我把它放了回去

您是否知道是什么原因导致了这两种配置之间的差异

最糟糕的是,我可以继续在发布配置上编程,但我不想继续下去,因为我真的想知道这个问题的根源

提前感谢,

家伙

错误:

1>freetype.obj : error LNK2019: unresolved external symbol _FT_Glyph_To_Bitmap referenced in function "void __cdecl freetype::make_dlist(struct FT_FaceRec_ *,char,unsigned int,unsigned int *)" (?make_dlist@freetype@@YAXPAUFT_FaceRec_@@DIPAI@Z)
1>freetype.obj : error LNK2019: unresolved external symbol _FT_Get_Glyph referenced in function "void __cdecl freetype::make_dlist(struct FT_FaceRec_ *,char,unsigned int,unsigned int *)" (?make_dlist@freetype@@YAXPAUFT_FaceRec_@@DIPAI@Z)
1>freetype.obj : error LNK2019: unresolved external symbol _FT_Load_Glyph referenced in function "void __cdecl freetype::make_dlist(struct FT_FaceRec_ *,char,unsigned int,unsigned int *)" (?make_dlist@freetype@@YAXPAUFT_FaceRec_@@DIPAI@Z)
1>freetype.obj : error LNK2019: unresolved external symbol _FT_Get_Char_Index referenced in function "void __cdecl freetype::make_dlist(struct FT_FaceRec_ *,char,unsigned int,unsigned int *)" (?make_dlist@freetype@@YAXPAUFT_FaceRec_@@DIPAI@Z)
1>freetype.obj : error LNK2019: unresolved external symbol _FT_Done_FreeType referenced in function "public: void __thiscall freetype::font_data::init(char const *,unsigned int)" (?init@font_data@freetype@@QAEXPBDI@Z)
1>freetype.obj : error LNK2019: unresolved external symbol _FT_Done_Face referenced in function "public: void __thiscall freetype::font_data::init(char const *,unsigned int)" (?init@font_data@freetype@@QAEXPBDI@Z)
1>freetype.obj : error LNK2019: unresolved external symbol _FT_Set_Char_Size referenced in function "public: void __thiscall freetype::font_data::init(char const *,unsigned int)" (?init@font_data@freetype@@QAEXPBDI@Z)
1>freetype.obj : error LNK2019: unresolved external symbol _FT_New_Face referenced in function "public: void __thiscall freetype::font_data::init(char const *,unsigned int)" (?init@font_data@freetype@@QAEXPBDI@Z)
1>freetype.obj : error LNK2019: unresolved external symbol _FT_Init_FreeType referenced in function "public: void __thiscall freetype::font_data::init(char const *,unsigned int)" (?init@font_data@freetype@@QAEXPBDI@Z)
编辑:好吧,这很奇怪。我已经从发布配置中的include和library目录设置中删除了所有freetype目录信息,以及附加的依赖项。而且发布的配置版本仍然有效


这让我相信,在移动文件时(vs config-wise)遗漏了一些东西

我也有同样的问题

我通过为
x64
平台(或
win32
如果您使用它)编译
freetype
(freetype-2.5.2\builds\windows\vc2010\freetype.sln)解决方案解决了这个问题


您将获得此平台的
.libs

调试配置的链接器设置与发布配置的设置是分开的。因此,一个明显的解释是,您正确地将freetype.lib文件添加到发布配置的链接器附加依赖项设置中,但忘记了对调试配置执行此操作。我使用“所有配置”同时设置它们。所以他们是彼此的镜子。我认为发行版的配置在某种程度上“卡住了”。正如我的问题的编辑所解释的那样。我现在正把项目复制到一个新的、干净的项目中,并有一个新的干净的解决方案文件。但到目前为止,我很难将任何一种配置与库正确链接。配置不会被“卡住”。通过在链接器的命令行设置页面中添加/verbose选项来检查您的假设。您将在“输出”窗口中看到每个库的转储。@HansPassant我遵照您的建议,在扫描了相关库的转储后,我找不到对“freetype.lib”的任何引用,这很奇怪,因为我在libraries目录中包含了存放此文件的文件夹。当然,这还不够。再次阅读我的第一条评论。