我的foo.c文件中有一组函数foo1(),foo2(),foo3(),.... 理想情况下,我想自由选择将哪些功能包含在程序中以及哪些功能将被忽略/注释掉。 makefile是否适合这样的任务?
随时告诉我是否有更好/更方便的方法来实现这一目标。
答案 0 :(得分:2)
我想也许你需要一些marcos和-D选项?
#ifdef FOO1
void foo1()
{}
#endif
#ifdef FOO2
void foo2()
{}
#endif
然后,在makefile中添加flage -DFOO2,那么只会编译foo2并忽略foo1。 例如:
gcc -DFOO2 main.c
答案 1 :(得分:1)
最方便的方法是将它们留在原来的位置,而不是将它们称为被忽略的方式。有些编译器可能会优化并从二进制文件中排除该代码。
第二种最方便的方法是使用预处理器#ifdef
指令和编译器-D
标志。
最不方便的方法是编写一个脚本,该脚本将仅使用请求的函数构建foo.c
并从make
调用该脚本。