c++ - Makefile c++11 支持

标签 c++ linux gcc c++11 makefile

我最近开始了一个 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/

相关文章:

c++ - 链接 SDL2 - CLion - Ubuntu 16.04 - G++

c++ - 静态 QString 初始化失败

linux - Apache2 只能通过 sudo 启动

linux - 如何对文件进行 gzip 压缩

c - 如何在支持gnu99的gcc中处理 "warning: inline function ` *stat6 4` declared but never defined"

c++ - 如何在不同线程中使用 std::mutex?

c++ - Mac 上的段错误 11,C++ unsigned int 声明

C++ - 类没有命名类型

gcc - 使用 ARM GCC 时 "nosys"、 "nano"、 "rdimon"术语是什么?

c - 在c中定义了一个空数组