Android gcc禁用-特定文件/文件夹的墙标志
我的项目中有一些开源库文件(例如:)-墙选项在我的Android.mk文件中已启用。在编译过程中,stb_vorbis.c中生成了几个警告Android gcc禁用-特定文件/文件夹的墙标志,android,c++,c,gcc,makefile,Android,C++,C,Gcc,Makefile,我的项目中有一些开源库文件(例如:)-墙选项在我的Android.mk文件中已启用。在编译过程中,stb_vorbis.c中生成了几个警告 warning: unused variable <var> warning: statement with no effect warning: <var> defined but not used warning: <var> may be used uninitialized in this function 警告
warning: unused variable <var>
warning: statement with no effect
warning: <var> defined but not used
warning: <var> may be used uninitialized in this function
警告:未使用的变量
警告:声明无效
警告:已定义但未使用
警告:此函数中可能未初始化就使用
出于某种原因,我不想修改stb_vorbis.c,但仍然希望-Wall选项可用于我自己的源文件。有没有办法禁用特定文件/文件夹的-Wall选项
有没有办法禁用特定文件/文件夹的-Wall选项
我不相信有任何gcc
选项可以用来实现这一点。您需要更改用于编译有问题的源文件的Makefile
你可以这样做
CFLAGS:=$(filter-out -Wall, $(CFLAGS))
在stb\u vorbis
的生成文件中,如果您的make
支持filter out
功能
您还可以为该stb_vorbis.c
编写特定规则:
STB_VOBIS_CFLAGS:=$(filter-out -Wall, $(CFLAGS))
stb_vorbis.o: stb_vorbis.c ...
$(CC) $(STB_VOBIS_CFLAGS) -o $@ -c $<
STB\u VOBIS\u CFLAGS:=$(过滤墙外,$(CFLAGS))
你的名字是什么。。。
$(CC)$(STB_VOBIS_CFLAGS)-o$@-c$<
尽管无法通过一个选项关闭-Wall
,但您可以使用警告的-Wno-*
关闭GCC中的特定警告。因此,例如,要抑制未使用变量警告,可以添加-Wno unused variable
。有关不同警告选项的更多信息,请参阅
例如,您可以使用特定于目标的变量,如:
stb_vorbis.c: CFLAGS += -Wno-unused-variable
使用,您可以附加-w
选项以禁止stb_vorbis.c文件的所有警告消息:
stb_vorbis.o: CFLAGS += -w
或对于整个目录:
third_party/%.o: CFLAGS += -w
一般的经验法则是,如果您有两个或两个以上的互斥选项,gcc通常会选择后面的选项,而不是前面的选项。我不明白您的意思。它是否仅排除stb_vorbis.c或将全部应用?对于所有源文件,我只有一个make文件。@gmuhammad您是否有make文件来编译来自
stb\u vorbis
的文件?如果你有一个,把调用放到那个Makefile中的过滤掉_vorbis@gmuhammad不,不是单独的Makefile。只需在当前Makefile中为stb_vorbis.c添加一条新规则即可。使用-isystem有时也很有用,请参见: