错误 LNK2001:未解析的外部符号(无法加载 SFML 库的每个静态成员)
error LNK2001: unresolved external symbol (every static member of SFML library can't be loaded)
所以,当我尝试使用 SFML 库的任何静态成员时遇到问题,例如 sf::RenderState::Default
或 sf::Color::Blue
。
error LNK2001: 未解析的外部符号“public: static class sf::RenderStates const sf::RenderStates::Default” (?Default@RenderStates@sf@@2V12@ B)
但是当我评论行时,我可以访问 sf::window(它被创建,但不能绘制任何东西,因为 sf::Drawble
有 sf::RenderState::Default
作为标准参数)。
我在 Visual Studio(我有 VS19)的解决方案属性中检查了所有内容,包括链接器和编译器。
P.S。我使用最新版本的 SFML (2.5.1) 和 Visual C++20.
感谢您的帮助。
在这种情况下,我将采取的故障排除步骤从最简单到相反。
- 如果我查看sf::RenderState::Default的声明,能找到吗?
- 如果我创建一个仅使用此功能的新项目,错误是否仍然存在?
- 如果我重新进行链接和目录搜索,问题是否得到解决?
- 我有与我的编译器兼容的版本吗?
此外,您提供的有关环境的信息量不足以推测可能是什么问题。它可能对 post 你的 SFML 版本、你的编译器(和类型)、你的项目有帮助(shorthand。)
如果需要,可以从源代码编译 SFML。有时,偶然使用不兼容的版本不会在许多基本问题上显示任何问题,直到您 运行 出现奇怪的错误。
有关从源代码编译 SFML 的信息,请参阅此文档:
https://www.sfml-dev.org/tutorials/2.5/compile-with-cmake.php
所以,感谢 AlixianaBritmonkey,我解决了这个问题。我只是创建新项目并移动了每个文件。我不知道为什么之前会出现问题,但我的解决方案有所帮助。
所以,当我尝试使用 SFML 库的任何静态成员时遇到问题,例如 sf::RenderState::Default
或 sf::Color::Blue
。
error LNK2001: 未解析的外部符号“public: static class sf::RenderStates const sf::RenderStates::Default” (?Default@RenderStates@sf@@2V12@ B)
但是当我评论行时,我可以访问 sf::window(它被创建,但不能绘制任何东西,因为 sf::Drawble
有 sf::RenderState::Default
作为标准参数)。
我在 Visual Studio(我有 VS19)的解决方案属性中检查了所有内容,包括链接器和编译器。
P.S。我使用最新版本的 SFML (2.5.1) 和 Visual C++20.
感谢您的帮助。
在这种情况下,我将采取的故障排除步骤从最简单到相反。
- 如果我查看sf::RenderState::Default的声明,能找到吗?
- 如果我创建一个仅使用此功能的新项目,错误是否仍然存在?
- 如果我重新进行链接和目录搜索,问题是否得到解决?
- 我有与我的编译器兼容的版本吗?
此外,您提供的有关环境的信息量不足以推测可能是什么问题。它可能对 post 你的 SFML 版本、你的编译器(和类型)、你的项目有帮助(shorthand。)
如果需要,可以从源代码编译 SFML。有时,偶然使用不兼容的版本不会在许多基本问题上显示任何问题,直到您 运行 出现奇怪的错误。
有关从源代码编译 SFML 的信息,请参阅此文档: https://www.sfml-dev.org/tutorials/2.5/compile-with-cmake.php
所以,感谢 AlixianaBritmonkey,我解决了这个问题。我只是创建新项目并移动了每个文件。我不知道为什么之前会出现问题,但我的解决方案有所帮助。