如何在Linux中压制-Werror=pointer-to-int-cast
和-Werror=address
类错误?
我知道以下是用于抑制上述错误的选项。
-Wno-error=address
-Wno-pointer-to-int-cast
但我的问题是如何在构建大型项目时使用它们或在何处编辑编译器设置。
答案 0 :(得分:2)
如果您使用的是标准的Makefile构建系统,请将它们放在CFLAGS中。
如果是autoconf项目,请将它放在Makefile.am中,如下所示:
CFLAGS = -Wno-error = address -Wno-pointer-to-int-cast
如果您正在使用其他一些构建系统,则需要在将.c文件编译为.o时将其传递给gcc命令行。
如果它是使用autoconf的现有包,您可以将它传递给./configure,如下所示:
$ ./configure --extra-cflags =' - Wno-error = address -Wno-pointer-to-int-cast'
其他基于autoconf的项目从环境中获取它而不是(或除了)--extra-cflags:
$ CFLAGS =' - Wno-error = address -Wno-pointer-to-int-cast'./configure --any-other-options-you-need
答案 1 :(得分:1)
如果您使用的是gcc,请考虑以下事项:
您可以使用以下方法编译程序:
gcc -o obj src_file
src_file:* .c(任何扩展名为“.c”的文件名)
如果您使用的是Makefile,那么
#SRC代表源文件
#OBJ代表目标文件
SRC = file.c
OBJ =文件
CFLAGS = -Wall#不包含-Werror标志,否则警告将为
#视为错误。
$(OBJ):$(SRC)
gcc $(CFLAGS)-o $(OBJ)$(SRC)