一个关于-std=c++11还是c++14的小问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zeqi1991/article/details/81543978

今天学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 <iostream>
#include <memory>

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的,所以觉得应该不会出现这个问题,现在还不知道为什么编译器会这样?求解!

猜你喜欢

转载自blog.csdn.net/zeqi1991/article/details/81543978