使用调试选项创建makefile

时间:2014-10-21 09:59:24

标签: c debugging makefile

我创建了一个(非常简单的)makefile:

DEBUG = -DDEBUG

main: main.c add.c
   gcc $(DEBUG) main.c add.c -o main -lm

我想要的(并且不了解该怎么做)是创建makefile,以便在用户打印make debug时,代码将使用debug选项进行编译,但仅在打印时{ {1}},调试将被忽略。做这个的最好方式是什么?

3 个答案:

答案 0 :(得分:3)

您可能正在寻找类似

的内容
main: main.c add.c
   gcc $(DEBUG) main.c add.c -o main -lm

debug: DEBUG = -DDEBUG

debug: main

答案 1 :(得分:0)

我想出了这种解决方案,取决于bash variable substitution

Makefile:

main: main.c add.c
    ${CC} `echo $${DEBUG+-DDEBUG}` main.c add.c -o main -lm

当环境变量DEBUG定义为任何值(甚至为空白)时,此makefile将替换对编译器有用的-DDEBUG。因此,调用看起来像:

DEBUG=1 make main

答案 2 :(得分:-1)

我知道这已经很老了,我只想在downhillFromHere的答案中添加这个小的修改,以简化make的用法:

main: main.c add.c
    gcc $(DEBUG) main.c add.c -o main -lm

debug: DEBUG = -DDEBUG

debug: clean main

每次<{1}}之前,干净都会在主要目标之前运行。