Kompilieren openttd mit VS2005 - Linker Fehler in Freetype
-
05-07-2019 - |
Frage
Nun, hier ist eine schöne dunkel ein. Ich versuche, die neuesten Open Transport Tycoon Quelle in Visual Studio 2005 (es ist eine C ++ Anwendung, die zlib verwendet, DX8 und einige andere ziemlich häufig Bibliotheken) zu kompilieren.
Ich bekomme ein paar Linker Fehler mit den Freetype Abhängigkeiten zu tun:
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
Ich habe die letzte Freetype stabil heruntergeladen und es (auch in VS2005) zusammengestellt, und setzen die ft2build.h und Freetype Verzeichnisse in mein VS8 / VC / include umfassen, und die libfreetype2.lib Bibliothek setzen so zusammengestellt in mein VS8 / VC / lib. Was könnte ich fehlen?
Danke!
Lösung
Das @
Zeichen am Anfang der verstümmelten Funktionsnamen zeigt, dass Ihre fontcache.obj
Datei diese Funktionen erwartet, dass die __fastcall
Aufrufkonvention haben, was ungewöhnlich ist, als die Standard-Aufrufkonvention __cdecl
ist. Ich vermute, es gibt eine Diskrepanz irgendwo in den Compiler-Einstellungen verwendet, um die Bibliotheken und solche, die Anwendung erstellen verwendet zu bauen. Siehe hier und hier für weitere Informationen.