使用SFML构建c++项目时未定义的引用

undefined reference when building C++ project using SFML

本文关键字:未定义 引用 项目 SFML 构建 c++ 使用      更新时间:2023-10-16

是的,已经有一些关于这个的帖子-但是他们并没有帮助我解决我的问题。

几天前我已经发布了一个有关SFML的问题-我的项目不能包括头文件,或者至少我是这样认为的。我已经把这个问题标记为回答了,因为项目编译得很好,但愚蠢的我并没有尝试实际构建项目,这涉及到链接过程。

问题是,当我尝试链接时,我得到以下错误:

在函数AudioUtils::playSound(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': somepath: undefined reference to __imp__ZN2sf11SoundBuffer12loadFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE'

似乎在SFML库中使用的字符串类与我使用的字符串类不同。如果这个问题是由于不同的编译器版本引起的,那么我可以向你保证版本是相同的。

值得一提的是,我正在使用CLion进行开发。

那么到底是什么导致了这个问题,我们如何解决它?

我已经设法解决了这个问题-这是一个相当薄但愚蠢的错误:

我忘记了无效/重新加载CMake的缓存,这导致了编译器版本不相同的问题。