使用不同的CFLAGS为不同的目标编译通用的C文件

标签 c makefile compilation cmake gnu-make

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

假设我有 common1.c common2.c common3.c 公共(public)文件。

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

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

我怎样才能做到这一点。

提前致谢
文卡特什

最佳答案

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

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

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

通读该页面很重要,因为需要这样的配方(或只是执行它)会产生一些影响

关于使用不同的CFLAGS为不同的目标编译通用的C文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39498579/

相关文章:

c++ - 如何使用多个二进制包创建 linux debian 包?

macos - 尝试编译 RtAudio 时出现 undefined symbol

c - 为什么“while(!feof(file))”总是错误的?

C: 使用 opendir 和 open 打开的文件太多

c - 停止 make 将警告视为错误

linux - 如何在 Makefile 中查看内核版本

ios - ReasonML 可以用来制作原生 iOS 应用程序吗?

c - 为什么 "volatile"只要求数组声明定义一致性?

c - 我将如何修改这个单链表排序算法,以便它正确地按升序排序?

c - Make - 无所事事 - 只有文件扩展名