質問

さて、これはわかりにくいものです。 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安定版をダウンロードしてコンパイルし(VS2005でも)、ft2build.hおよびfreetypeインクルードディレクトリをVS8 / VC / includeディレクトリに配置し、libfreetype2.libライブラリをそのようにコンパイルしましたVS8 / VC / libディレクトリ。何が足りないのでしょうか?

ありがとう!

役に立ちましたか?

解決

マングルされた関数名の先頭にある @ 記号は、 fontcache.obj ファイルがこれらの関数に __ fastcall があることを期待していることを示していますデフォルトの呼び出し規則は __ cdecl であるため、これは異常です。ライブラリのビルドに使用されるコンパイラ設定とアプリケーションのビルドに使用されるコンパイラ設定のどこかに不一致があると思います。 こちらこちらをご覧ください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top