我目前有一個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'。 –