makefile可以用来插入代码吗?

时间:2017-03-21 04:26:57

标签: c makefile gnu-make

这是一项家庭作业。我有一个makefile,默认使用编译可执行文件 gcc -o myprogram myprogram.c

在作业中,我们应该制作3个额外的制作案例:" makefile还应支持使用这3个案例make test1,{3} make test2 {3}将睡眠时间插入到程序的3个不同指定位置{1}},make test3

我知道如何使用make从默认情况下有这样的额外情况,但我的问题是在编译可执行文件之前可以使用makefile将代码插入myprogram.c吗?或者我是否必须创建myprogram1.c myprogram2.c等,然后将其用于案例?

谢谢!

2 个答案:

答案 0 :(得分:5)

一个简单的解决方案是你可以在编译时定义的宏,比如

int main(void)
{
    SLEEP_HERE;
    return 0;
}

并在编译时

gcc -Wall -Werror -DSLEEP_HERE='sleep(10)' -o myprogram myprogram.c

答案 1 :(得分:1)

您无需创建三个单独的文件。

在文件中创建一个宏

#ifndef DELAY_SEC
#define DELAY_SEC 0
#endif

现在在任何地方都使用宏DELAY_SEC,如果正常编译它将具有值0。

现在在目标的Makefile中,你希望延迟10秒编译为

gcc -DDELAY_SEC=10 -o myprogram myprogram.c

等等其他延迟,应该相应编译。