禁用clang C++11警告

7

我无论如何都无法让clang停止警告我有关C++11扩展的问题。在任何我使用"auto"或其他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 $@ $(OBJECTS) $(LIBS)

$(OBJ_DIR)/%.o: %.cpp
    $(CXX) $(INC_DIR) -c $< -g -o $@ 

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
为什么你没有将 $(CXXFLAGS) 传递给编译步骤? - Kerrek SB
@KerrekSB 哎呀,我真是个笨蛋,有时候只需要第二个人来看一下就行了。问题已经解决了。如果你回复这条消息作为答案,我会标记它的。 - Lerp
好的,没问题。给你。 - Kerrek SB
1个回答

7

您需要将所有编译器选项传递到编译步骤中:

$(OBJ_DIR)/%.o: %.cpp
    $(CXX) $(CXXFLAGS) $(INC_DIR) -c $< -g -o $@ 
#          ^^^^^^^^^^^

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接