la compilation d'openttd avec VS2005 - erreurs de l'éditeur de liens dans freetype
-
05-07-2019 - |
Question
Eh bien, voici un bel obscur. J'essaie de compiler la dernière source tycoon de transport ouvert dans Visual Studio 2005. (C'est une application C ++ qui utilise zlib, dx8 et quelques autres bibliothèques assez courantes).
J'ai quelques erreurs d'éditeur de liens à faire avec les dépendances 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
J'ai téléchargé et compilé le dernier stable freetype (également dans VS2005) et placé les répertoires ft2build.h et freetype dans mon répertoire VS8 / VC / include, ainsi que la bibliothèque libfreetype2.lib ainsi compilée. mon répertoire VS8 / VC / lib. Que pourrais-je manquer?
Merci!
La solution
Le signe @
au début des noms de fonction altérés indique que votre fichier fontcache.obj
s'attend à ce que ces fonctions possèdent le __ fastcall
. convention d'appel, ce qui est inhabituel dans la mesure où la convention d'appel par défaut est __cdecl
. Je soupçonne qu'il y a une discordance quelque part dans les paramètres du compilateur utilisés pour construire les bibliothèques et ceux utilisés pour créer l'application. Voir ici et ici pour plus d'informations.