加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

makefile – Make:覆盖一个标志

发布时间:2020-12-16 09:45:47 所属栏目:百科 来源:网络整理
导读:我对 Quick way to override -Werror flag?的反应有点困惑 所以我在这里问我的具体问题. 我有多个Makefile一起工作,CFLAGS已经设置为(-Werror -Wall ..和许多其他人) 但是在其中一个Makefile中,我希望错误不被视为警告,所以我想删除-Werror标志. 实现这一目
我对 Quick way to override -Werror flag?的反应有点困惑

所以我在这里问我的具体问题.

我有多个Makefile一起工作,CFLAGS已经设置为(-Werror -Wall ..和许多其他人)

但是在其中一个Makefile中,我希望错误不被视为警告,所以我想删除-Werror标志.

实现这一目标的最佳方法是什么,以便只有这个Makefile,-Werror标志被删除,而其他人正常执行?

谢谢,
晴朗

解决方法

更简单的方法

看起来你可以调用

gcc -c ... -Werror ... -Wno-error ...

没有GCC抱怨(GCC 4.7.1).因此,您可以将-Wno-error添加到您需要的一个makefile中的其他位置设置的CFLAGS.如果你正在使用GNU make,在一个makefile中,你可以添加:

CFLAGS += -Wno-error

可能只是需要它的单个目标.

更难的方式

否则,您需要一个用于从组件构建CFLAGS的系统.我用于测试SO问题答案的makefile中包含的内容是:

WFLAG1 = -Wall 
WFLAG2 = -Wextra
WFLAG3 = -Wmissing-prototypes 
WFLAG4 = -Wstrict-prototypes 
WFLAG5 = -Wold-style-definition
WFLAG6 =
WFLAGS = ${WFLAG1} ${WFLAG2} ${WFLAG3} ${WFLAG4} ${WFLAG5} ${WFLAG6} 
SFLAGS = -std=c99
GFLAGS = -g
OFLAGS = -O3
UFLAGS =
IFLAG1 = -I${HOME}/inc
IFLAGS = # ${IFLAG1}

CFLAGS   = ${OFLAGS} ${GFLAGS} ${IFLAGS} ${SFLAGS} ${WFLAGS} ${UFLAGS}

重点是每个标志可独立调节;我可以通过将${WFLAG1}设置为${WFLAG6}来控制警告标志,或者通过在命令行上设置${WFLAGS}批发来控制警告标志,或者(实际上)通过设置${CFLAGS}来控制警告标志.但是因为每个都是可以单独调节的,并且可以相对容易地调整警告(主要的麻烦在于确定哪个WFLAGn需要破坏).

UFLAGS是’用户标志’,仅在命令行上设置;我可以通过设置为我的命令行添加更多标志.

这种方式“更难”,因为它要求您修改设置CFLAGS的makefile系统的中心部分.您的同事一见钟情也不太可能理解.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读