我尝试构建的项目有默认标志
CFLAGS = -Wall -g -O2
CXXFLAGS = -g -O2
我需要向这两个变量附加一个标志
-w
(以删除:“将所有警告视为错误”)
我有一个方法可以解决,给
make 'CFLAGS=-Wall -g -O2 -w'; 'CXXFLAGS=-g -O2 -w'
或
运行
./configure
并静态修改 Makefile
但是我想在运行时将我的选项与现有选项一起附加
configure
或 make
帖子 在 autotools 项目中添加 CFLAG(例如 -std=gnu99)的位置 方便地使用宏来实现这一点。
你几乎猜对了;为什么要加分号?
要在
configure
线上执行此操作:
./configure CFLAGS='-g -O2 -w' CXXFLAGS='-g -O2 -w'
要在
make
线上执行此操作:
make CFLAGS='-g -O2 -w' CXXFLAGS='-g -O2 -w'
但是,这并不能真正消除将所有警告视为错误;这会删除所有警告。因此同时指定
-Wall
和 -w
是没有意义的。如果您想保留警告但不将其视为错误,请使用 -Wall -Wno-error
标志。
或者,大多数默认启用
configure
的 -Werror
脚本也有一个标志,例如 --disable-werror
或类似标志。运行./configure --help
看看是否有类似的东西。
我遇到了同样的问题,也找不到简单的解决方案。我所做的是修改 Makefile 模板(
Makefile.config.in
)。例如,模板有一行
CFLAGS = @CFLAGS@ @DEFS@ $(C_COMPILE_FLAGS)
我改成
CFLAGS = @CFLAGS@ @DEFS@ $(C_COMPILE_FLAGS) $(CFLAGS_USER)
之后,我可以这样使用:
./configure [options]
make CFLAGS_USER="-fPIC"