compilando openttd con VS2005 - errores de vinculador en freetype
-
05-07-2019 - |
Pregunta
Bueno, aquí hay una bonita oscura. Estoy tratando de compilar la última fuente de magnate de transporte abierto en Visual Studio 2005. (Es una aplicación C ++ que usa zlib, dx8 y algunas otras bibliotecas bastante comunes).
Recibo algunos errores de vinculador relacionados con las dependencias de 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
He descargado el freetype estable más reciente y lo he compilado (también en VS2005), y puse el ft2build.hy los directorios de inclusión de freetype en mi directorio de VS8 / VC / include, y puse la biblioteca libfreetype2.lib así compilada Mi directorio VS8 / VC / lib. ¿Qué podría faltar?
¡Gracias!
Solución
El signo @
al comienzo de los nombres de funciones modificadas muestra que su archivo fontcache.obj
está esperando que estas funciones tengan el __fastcall
convención de llamada, que es inusual ya que la convención de llamada predeterminada es __cdecl
. Sospecho que hay una falta de coincidencia en algún lugar de la configuración del compilador que se usa para construir las bibliotecas y las que se usan para construir la aplicación. Consulte aquí y here para obtener más información.