2

Microsoft Visual Studio C ++ 2010 Express Editionを使用していて、SDL_ttf.libを使用してSDLプロジェクトをコンパイルしようとすると、次のエラーメッセージが表示されます。

1>SDL.obj : error LNK2019: unresolved external symbol _TTF_CloseFont referenced in function "void __cdecl DrawTextW(struct SDL_Surface *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int,int,int,int,int,int,int,int,int)" (?DrawTextW@@YAXPAUSDL_Surface@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@HHHHHHHHH@Z)

1>SDL.obj : error LNK2019: unresolved external symbol _TTF_RenderText_Shaded referenced in function "void __cdecl DrawTextW(struct SDL_Surface *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int,int,int,int,int,int,int,int,int)" (?DrawTextW@@YAXPAUSDL_Surface@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@HHHHHHHHH@Z)

1>SDL.obj : error LNK2019: unresolved external symbol _TTF_OpenFont referenced in function "void __cdecl DrawTextW(struct SDL_Surface *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int,int,int,int,int,int,int,int,int)" (?DrawTextW@@YAXPAUSDL_Surface@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@HHHHHHHHH@Z)

1>SDL.obj : error LNK2019: unresolved external symbol _TTF_Init referenced in function "bool __cdecl Init(void)" (?Init@@YA_NXZ)

1>SDL.obj : error LNK2019: unresolved external symbol _TTF_Quit referenced in function _SDL_main

私はすでに解決策を探しましたが、私の問題を解決するものは何も見つかりませんでした。SDL_ttf.libをリンクすることを忘れませんでした。フォルダーもリンクし、ヘッダーを含めて、SDL_ttf.dllをプロジェクトフォルダーに配置しました。

PS私はSDL_imageで同じ問題を抱えています。

4

2 に答える 2

1

以前に次のようなエラーが発生しました。

エラー LNK2019: 未解決の外部シンボル _TTF_Quit
エラー LNK2019: 未解決の外部シンボル _SDL_Init
エラー LNK2019: 未解決の外部シンボル _TTF_Init

プロジェクトのプロパティProject|Properties|Configuration Properties|Linker|Input|Additional Dependenciesが欠落していたため:「SDL.lib SDLmain.lib SDL_ttf.lib SDL_image.lib」

于 2014-02-20T14:34:59.987 に答える
1

通常、このエラーは外部オブジェクトがここで説明されているように定義されていないことが原因です。

このような

// LNK2019b.cpp
// LNK2019 expected
struct C {
   static int s;
};

// Uncomment the following line to resolve.
// int C::s;

int main() {
   C c;
   C::s = 1;
}

おそらく、SDL::_TTF_XXX のような _TTF オブジェクトの実際のインスタンスを定義する必要があります

于 2012-06-07T20:23:34.403 に答える