请问一下如何实现“选择性编译”?

现在有一个C工程,假设只有main.c 和 pattern.h文件,在后者中定义了一些标准化的接口

想实现一个功能:将pattern.h中定义的接口提供给用户开发,最终将会有很多包含该头文件的c文件。

比如 A同学写一个 patternA.c 来实现这个接口,

同理 B同学写一个 patternB.c 来实现这个接口,

这两个c文件都有#include "pattern.h"并且会同时存在于一个文件目录下。

最终在main.c 中 或者makefile 中,如何实现选择其中之一来进行编译链接?

比如修改main.c 中的宏定义 或者 运行 make patternA or make patternB

最好可以通过后者实现,这样可以避免在编译过程中需要用户修改源代码


慕婉清6462132
浏览 674回答 2
2回答

富国沪深

Makefile 示例all: patternA patternBpatternA: main.c patternA.c pattern.h     gcc -o $@ $^patternB: main.c patternB.c pattern.h     gcc -o $@ $^

慕码人8056858

make 或 make all 同时编译 patternA 和 patternBmake patternA 编译 patternAmake patternB 编译 patternB
打开App,查看更多内容
随时随地看视频慕课网APP