【问题标题】:Visual Studio C++ 2010 error LNK2019: unresolved external symbolVisual Studio C++ 2010 错误 LNK2019:未解析的外部符号
【发布时间】:2012-06-07 20:14:13
【问题描述】:

我正在使用 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放入我的项目文件夹中。

P.S 我对 SDL_image 也有同样的问题。

【问题讨论】:

    标签: c++ visual-studio-2010 visual-c++ linker


    【解决方案1】:

    通常该错误来自未按照here 所述定义的外部对象。

    喜欢这个

    // 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;
    }
    

    您可能需要定义 _TTF 对象的实际实例,例如 SDL::_TTF_XXX

    【讨论】:

    • 我最终想通了:将包含 lib 文件夹从 x64 更改为 x86,这实际上解决了问题,我有点愚蠢,但感谢您的帮助。
    【解决方案2】:

    我以前也遇到过这样的错误:

    错误 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"

    【讨论】:

      猜你喜欢
      • 2023-03-28
      • 2014-06-10
      • 2013-07-20
      • 1970-01-01
      • 1970-01-01
      • 2013-06-15
      • 2018-07-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多