我正在尝试在Raspberry Pi上编译代码w / shared_ptrs:
#include <iostream>
using namespace std;
int main(int argc, char* argv[]){
shared_ptr<string> message1(new string("Hello Raspberry Pi C++11"));
cout << *message1 <<endl;
return 0;
}
我收到以下错误:
test.cpp: In function 'int main(int, char**)': test.cpp:4:4: error: 'shared_ptr' was not declared in this scope
shared_ptr<string> message1(new string("Hello Raspberry Pi C++11"));
^ test.cpp:4:21: error: expected primary-expression before '>' token
shared_ptr<string> message1(new string("Hello Raspberry Pi C++11"));
^ test.cpp:4:70: error: 'message1' was not declared in this scope
shared_ptr<string> message1(new string("Hello Raspberry Pi C++11"));
我正在使用此命令进行编译:{{1}} G ++版本是g ++(Raspbian 4.8.2-21~rpi3rpi1)4.8.2
请帮忙。
答案 0 :(得分:8)
您需要在文件开头添加内存标题。
#include <memory>
答案 1 :(得分:1)
如果上面的解决方案即使在包含标题之后也不起作用,请确保编译器传递参数--std = c ++ 11
如果用gcc编译它,你应该包括头部tr1头部,即#include而不是和std :: tr1 :: shared_ptr。