为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C
慕婉清6462132 2019-02-21 12:10:45
现在有一个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最好可以通过后者实现,这样可以避免在编译过程中需要用户修改源代码
查看完整描述

2 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

Makefile 示例

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


查看完整回答
反对 回复 2019-02-21
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

  1. make 或 make all 同时编译 patternA 和 patternB

  2. make patternA 编译 patternA

  3. make patternB 编译 patternB


查看完整回答
反对 回复 2019-02-21
  • 2 回答
  • 0 关注
  • 666 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信