我最近开始了一个 C++ 的小项目。我创建了一个简单的 Makefile:
CC=g++
CFLAGS =-std=c++0x -I. -c
VPATH = src include
vpath %.c src
vpath %.h include
TabooSearch : main.o Task.o TabooList.o
$(CC) $(CFLAGS) -o TabooSearch main.o Task.o TabooList.o
问题是,当我运行 make
时,我从 gcc 中得到了这种错误:
错误:“nullptr”未在此范围内声明
我不知道我的 Makefile 有什么问题,有人可以帮我解决这个问题吗?我的 Debian 上的 gcc 版本是 4.7.2
提前致谢
最佳答案
由于您使用隐式规则来构建 .o
文件,因此您应该使用 CXXFLAGS
来设置 C++ 标志:
CXXFLAGS =-std=c++0x
不需要-I。
或-c
。
我会添加更多标志以获得合适的错误和警告:
CXXFLAGS := -Wall -Wextra -pedantic-errors -std+c++0x
对于g++
也是如此。如果您的默认设置不调用 g++,那么您需要添加
CXX = g++
关于c++ - Makefile c++11 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13828195/