我目前有一个C++项目的问题。我需要一些与C++ 11一起提供的工具,但是当我想用Makefile编译时,出现以下错误:用makefile和C++编译时出错11
错误此文件需要ISO C++ 2011标准的编译器和库支持。此支持目前是实验性的,必须使用-std = C++ 11或-std = gnu ++ 11编译器选项启用。
这里是我的Makefile:
.PHONY: clean, mrproper
# var
CXX = g++
EXEC = tablut
LDFLAGS =
CXXFLAGS = -std=c++11 -Wall -Wextra
SRC= partie.cpp pawn.cpp playground.cpp
OBJ= $(SRC:.c=.o)
# commands
all: $(EXEC)
tablut: $(OBJ)
$(CXX) -o tablut $(OBJ) $(LDFLAGS)
%.o: %.cpp
$(CXX) -o [email protected] -c $< $(CXXFLAGS)
clean:
rm -rf *.o
mrproper: clean
rm -rf tablut
有趣的是,我的代码编译,如果我输入命令G ++ -c STD = C++ 11 ...
我是怎么做错了 ?
注:我试图与标志-std = C++ 11,-std =的C++ 0x和-std = GNU ++ 11
您可以包含运行'make'的输出吗? –
它甚至可以使用这个'OBJ = $(SRC:.c = .o)'?它应该是'OBJ = $(SRC:.cpp = .o)' –
@AlexLop .:因为'$(OBJ)== $(SRC)'触发的唯一规则是'tablut'。 –