Gnu make 为特定文件增加makefile编译开关

Gnu make 为特定文件增加makefile编译开关,gnu-make,Gnu Make,CFLAGS环境变量可用于将编译开关从外部传递到Makefile,而无需修改文件本身。是否有方法仅为一个特定源文件传递开关 在我的例子中,我想对几个文件取消gcc警告,但不是对所有文件取消gcc警告,并且生成文件是由IDE自动生成的,因此我无法对其进行编辑。由于缺乏详细信息,我们无法回答此问题 但是,您可以添加要与旧makefile一起解析的新makefile,而无需更改旧makefile。例如,您可以运行以下命令: make -f Makefile -f ExtraMakefile 并创建自

CFLAGS环境变量可用于将编译开关从外部传递到Makefile,而无需修改文件本身。是否有方法仅为一个特定源文件传递开关


在我的例子中,我想对几个文件取消gcc警告,但不是对所有文件取消gcc警告,并且生成文件是由IDE自动生成的,因此我无法对其进行编辑。

由于缺乏详细信息,我们无法回答此问题

但是,您可以添加要与旧makefile一起解析的新makefile,而无需更改旧makefile。例如,您可以运行以下命令:

make -f Makefile -f ExtraMakefile

并创建自己的ExtraMakefile,其中包含您想要的任何额外makefile文本,make将按顺序读取它们。

请找到下面的方法,它将帮助您传递额外的编译器标志并根据您的条件为其赋值。
您可以通过创建一个新变量来传递开关,
Ex:CCFLAGS\u EXTRASWITCH并在CCFLAGS变量中使用此标志

# Append CC_FLAGS with variable CCFLAGS_EXTRASWITCH which will be used to 
# pass extra switches. Value of CCFLAGS_EXTRASWITCH  you can assign
# to empty or some switches based on conditions/files that you have
CC_FLAGS   = $(CCFLAGS_EXTRASWITCH) \
             ... \   # Other default compiler flags that already exists. Keep as it is

这样,我将不得不编辑Makefile,但我不能这样做。在Makefile运行之前,我只能修改环境变量或运行预构建步骤。@jackhub:如果CC_标志是您的环境变量,则可以根据您的文件类型将值放入此环境中。如果可以集成到IDE中,您可以选择从小脚本更新环境变量在编译之前,如果我将编译开关添加到CC_标志,它将影响所有C文件的编译。我要寻找的是只为一个文件添加编译开关的方法。@jackhab:您需要包含您自己的小makefile,因为这在其他方面是不可能的