我有一个项目,我一直在工作一段时间,总是在调试。 今天我试着建立一个版本,并且它没有编译出一些非常奇怪的错误。 而调试编译没有任何警告,发布抛出:GCC C++ 11调试版本,发布失败
/usr/include/c++/4.7/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
两个CMake的构建有C++ 11启用:
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -std=gnu++11 -Wall -g")
set(CMAKE_CSS_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -std=gnu++11 -Wall")
如何追踪是什么原因造成版本编译错误?
编辑我使用的是Cmake 2.8,并试图用gcc-4.6.3和4.7.2编译,两者都有相同的问题。
编辑#2使用-std = C++ 0x而不是C++ 11时问题仍然存在。
编辑#3降级到g ++ 4.6并没有太大的帮助。错误现在只是改为:
/usr/include/c++/4.6/bits/c++0x_warning.h:32:2:etc...
编辑#4我已删除<thread>
最先引起的问题。然后是<mutex>
和<atomic>
。现在它是使用std::shared_ptr<Blah>
的任何一段代码。 在我看来,如果Release不想用C++ 11进行编译。这是故意的吗?