我最近在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中得到这种错误:
error: ‘nullptr’ was not declared in this scope
我没有任何想法我的Makefile有什么问题,有人可以帮我解决这个问题。我的gcc版本是Debian上的4.7.2
提前致谢
答案 0 :(得分:5)
由于您使用隐式规则来构建.o
文件,因此应使用CXXFLAGS
来设置C ++标志:
CXXFLAGS = -std = c ++ 0x
无需-I.
或-c
。
我会添加一些标志来获得正确的错误和警告:
CXXFLAGS:= -Wall -Wextra -pedantic-errors -std + c ++ 0x
同样适用于g++
。如果您的默认设置不调用g ++,则需要添加
CXX = g ++