2

我最近用 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 有什么问题,有人可以帮我解决这个问题。我在 Debian 上的 gcc 版本是 4.7.2
在此先感谢

4

1 回答 1

5

由于您使用隐式规则来构建.o文件,因此您应该使用CXXFLAGS来设置 C++ 标志:

CXXFLAGS =-std=c++0x

不需要-I.or -c

我会添加更多标志以获得体面的错误和警告:

CXXFLAGS := -Wall -Wextra -pedantic-errors -std+c++0x

同样对于g++. 如果您的默认设置不调用 g++,那么您需要添加

CXX = g++

于 2012-12-11T20:49:17.647 回答