使用不同的CFLAGS编译不同目标的常见C文件

时间:2016-09-14 19:50:35

标签: c makefile compilation cmake gnu-make

我有一个场景,我需要使用相同的C文件来构建具有不同CFLAGS的不同目标。

让我们说像我有common1.c common2.c common3.c常用文件。

Target1有其他文件a.c b.c和CFLAGS为CFLAGS1
Target2有其他文件1.c 2.c和CFLAGS为CFLAGS2

Target1需要使用CFLAGS1编译的公共文件 Target2需要使用CFLAGS2编译的公共文件。

我该怎么做。

先谢谢你 卡塔斯

1 个答案:

答案 0 :(得分:0)

所以我认为文档的这一部分就是你所追求的: https://www.gnu.org/software/make/manual/html_node/Target_002dspecific.html

"目标特定变量还有一个特殊功能:当您定义特定于目标的变量时,变量值对该目标的所有先决条件及其所有先决条件等都有效(除非这些先决条件使用自己的特定于目标的变量值覆盖该变量。因此,例如,这样的声明:"

prog : CFLAGS = -g
prog : prog.o foo.o bar.o

阅读页面非常重要,因为需要这样的配方(或只是执行它)有一些含义