makefile – Make:覆盖一个标志
我对
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系统的中心部分.您的同事一见钟情也不太可能理解. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |