使用VS2005编译openttd - freetype中的链接器错误

时间:2009-01-07 21:59:31

标签: visual-studio-2005 linker-errors

嗯,这是一个不起眼的晦涩难懂。我正在尝试在Visual Studio 2005中编译最新的开放传输大亨源。(这是一个使用zlib,dx8和其他一些相当常见的库的C ++应用程序。)

我得到一些与freetype依赖关系有关的链接器错误:

Error   1   error LNK2001: unresolved external symbol @FT_Done_Face@4   fontcache.obj   
Error   2   error LNK2001: unresolved external symbol @FT_Load_Char@12  fontcache.obj   
Error   3   error LNK2001: unresolved external symbol @FT_Init_FreeType@4   fontcache.obj   
Error   4   error LNK2001: unresolved external symbol @FT_Select_Charmap@8  fontcache.obj   
Error   5   error LNK2001: unresolved external symbol @FT_Set_Charmap@8 fontcache.obj   
Error   6   error LNK2001: unresolved external symbol @FT_New_Face@16   fontcache.obj   
Error   7   error LNK2001: unresolved external symbol @FT_Render_Glyph@8    fontcache.obj   
Error   8   error LNK2001: unresolved external symbol @FT_Set_Pixel_Sizes@12    fontcache.obj   
Error   9   fatal error LNK1120: 8 unresolved externals ..\objs\Win32\Release\\openttd.exe  

我已经下载了最新的freetype stable并编译了它(也在VS2005中),并将ft2build.h和freetype include目录放入我的VS8 / VC / include目录中,并将libfreetype2.lib库编译成我的VS8 / VC / lib目录。我能错过什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

错位函数名称开头的@符号表明您的fontcache.obj文件期望这些函数具有__fastcall调用约定,这是不常见的默认调用约定是__cdecl。我怀疑用于构建库的编译器设置和用于构建应用程序的编译器设置中存在不匹配。有关详细信息,请参阅herehere