компиляция openttd с VS2005 - ошибки компоновщика в freetype - PullRequest
1 голос
/ 08 января 2009

Ну, вот хороший неясный. Я пытаюсь скомпилировать последнюю версию открытого транспортного магната в Visual Studio 2005. (Это приложение на C ++, использующее zlib, dx8 и несколько других довольно распространенных библиотек).

Я получаю несколько ошибок компоновщика, связанных с зависимостями 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 и скомпилировал ее (также в VS2005), поместил каталоги ft2build.h и freetype include в мой каталог VS8 / VC / include и поместил библиотеку libfreetype2.lib, скомпилированную в мой каталог VS8 / VC / lib. Чего мне не хватать?

Спасибо!

1 Ответ

1 голос
/ 08 января 2009

Знак @ в начале имен искаженных функций показывает, что ваш файл fontcache.obj ожидает, что эти функции будут иметь соглашение о вызовах __fastcall, что необычно, поскольку соглашение о вызовах по умолчанию - __cdecl. Я подозреваю, что где-то есть несоответствие в настройках компилятора, используемых для сборки библиотек, и тех, которые использовались для сборки приложения. См. здесь и здесь для получения дополнительной информации.

...