ptr’ in namespace ‘std’ does not name a type

我们在使用G++编译程序的时候,有时会遇到如标题所示的错误,常见于Linux系统下。出现这种问题的原因是C++ 11 在各种平台下的兼容问题。

可以在CMakeLists中作出如下修改:

cmake_minimum_required(VERSION 2.6)
 
PROJECT(Test)
 
if(UNIX)
    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=gnu++0x")
endif()

简单来说,就是只要加一条命令即可:

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=gnu++0x")

如果编译仍然不成功,那么需要在你所有需要编译的源文件中include一个叫做 <memory.h> 的头文件即可。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/340498c56b2ba8ef4f7ab0227f6ff6a7.html