今天学C++11看到了shared_ptr,准备写一些测试代码来学习一下。
makefile写好了,很简单:
#sample makefile
CC := g++
CXXFLAGS := -g -Wall -std=c++11
SRCS := $(wildcard ./*.cpp)
OBJS := $(patsubst %.cpp, %.o, $(SRCS))#替换的时候是%符号,不是*
EXE=main.out
all:$(OBJS)
$(CC) $(CXXFLAGS) $(OBJS) -o $(EXE)
@echo '------OK!------'
#%.o:%.c
# $(CC) -MM $(CXXFLAGS) -c $< -o $@
.PHONY:clean
clean:
-rm -f $(OBJS)
-rm -f $(EXE)
测试代码也写好了,也很简单:
#include
#include
using namespace std;
int main()
{
//测试shared_ptr的初始化
{
shared_ptr<int> p1(new int(3));
shared_ptr<int> p2 = make_shared<int>(3);
if (*p1 == *p2)
cout << "equal" << endl;
}
return 0;
}
就这样make的时候一直提示
然后找原因,找了半天,发现没解决,闲着无事,将c++11改为了c++14,就通过了。
我的gcc编译器版本是5.4的,所以觉得应该不会出现这个问题,现在还不知道为什么编译器会这样?求解!