C++ 编译器现在遵循C++;14个标准,我的项目不再编译?神秘的SFML错误

C++ 编译器现在遵循C++;14个标准,我的项目不再编译?神秘的SFML错误,c++,codeblocks,sfml,C++,Codeblocks,Sfml,这些错误意味着什么?在一个项目上工作了2年多的时间后,我的项目现在没有编译,现在我焦虑不安,不知道该怎么做 错误: 要求是 _imp__sf::Texture::loadFromFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, sf::Rect<int> const&) 尝试将-DGLIBCXX\

这些错误意味着什么?在一个项目上工作了2年多的时间后,我的项目现在没有编译,现在我焦虑不安,不知道该怎么做

错误:

要求是

_imp__sf::Texture::loadFromFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, sf::Rect<int> const&)

尝试将
-DGLIBCXX\u USE\u cx11\u ABI=0
添加到编译器开关中(不确定如何使用代码块)


请参阅详细信息和。

未定义的引用可能是编译SFML时与您现在编译项目之间的编译器版本或配置不兼容。如果您下载了一个二进制版本的SFML,它应该准确地说明它使用的编译器和版本。若您从源代码构建SFML,那个么只需使用当前编译器配置重新构建它就可以修复它


通常添加
-std=c++14
或类似的工作(在具有相同标准库的完全相同的编译器上),但也存在一些边缘情况,例如库使用typedef或受宏保护的函数在接口中使用更新的类型(如果可用)。如果编译器或库版本发生了更改,则需要考虑更多的因素。

是否混合了启用/未启用C++14编译的代码?是否确实链接到使用C++14编译器编译的库?什么是“更改以使编译器遵循C++14标准”?您是否刚刚将
-std=c++14
添加到一个没有它的构建中?或者它是一个全新的系统,有新的库等等?你到底改变了什么?以前我以为我的编译器设置为遵循C++14标准,显然不是,我从来没有意识到,这个项目每天都编译和构建得很好,但我不知道我实际上遵循的是什么标准?我希望我知道,或者可以一天回滚到最后一个工作状态,以回到开发的轨道上。谢谢大家的反馈
_imp__sf::Texture::loadFromFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, sf::Rect<int> const&)
Linker Settings:  (the dependencies order SFML requires)  sfml-graphics  
                  sfml-window
                  sfml-system
                  sfml-audio

Compiler: C:\CodeBlocks\SFML-2.4.2\include
Linker:   C:\CodeBlocks\SFML-2.4.2\lib