2013-05-19 130 views
4

我不能爲我的生活得到鐺停止警告我關於C++ 11擴展。無論我使用「auto」還是任何其他C++ 11擴展,它都會發出警告。禁用鏗鏘C++ 11警告

我有國旗-Wno-c++11-extension但它仍然打印它們。

這裏是我的makefile:

CXX = clang++ 
CXXFLAGS = -std=c++11 -Wall -Wno-c++11-extensions 
LIBS = -lglfw -lGL -lGLU -lGLEW 

OBJ_DIR = bin 
LIB_DIR = -L/usr/lib 
INC_DIR = -I/usr/include 

SOURCE = $(wildcard *.cpp) 
OBJECTS = ${SOURCE:%.cpp=$(OBJ_DIR)/%.o} 
EXECUTABLE = vox 
ARGS = -w1024 -h800 

.PHONY: init clean 

all: init $(OBJECTS) $(EXECUTABLE) 

$(EXECUTABLE): $(OBJECTS) 
    $(CXX) $(CXXFLAGS) $(LIB_DIR) -o [email protected] $(OBJECTS) $(LIBS) 

$(OBJ_DIR)/%.o: %.cpp 
    $(CXX) $(INC_DIR) -c $< -g -o [email protected] 

run: init $(EXECUTABLE) 
    @echo $(ls . | grep *.cpp) 
    @./$(EXECUTABLE) $(ARGS) 

init: 
    @mkdir -p "$(OBJ_DIR)" 

clean: 
    @rm -rf $(OBJ_DIR) $(EXECUTABLE) 

這裏是我的clang++ --version輸出

Ubuntu clang version 3.2-1~exp5ubuntu1~precise1 (tags/RELEASE_32/final) (based on LLVM 3.2) 
Target: x86_64-pc-linux-gnu 
Thread model: posix 
+1

Wy的麥凱納您是否將'$(CXXFLAGS)'傳遞給編譯步驟? –

+0

@KerrekSB基督我是一個白癡,有時只需要第二雙眼睛,這是固定的。如果回覆這個答案,我會標記它。 – Lerp

+0

好的,當然。你走了。 –

回答

6

你需要所有的編譯器選項傳遞給編譯步驟,以及:

$(OBJ_DIR)/%.o: %.cpp 
    $(CXX) $(CXXFLAGS) $(INC_DIR) -c $< -g -o [email protected] 
#   ^^^^^^^^^^^