2012-08-03 79 views
0

我正在尝试为现有项目实现命令行界面。我这样做的方式是使用两个独立的makefile。一个是项目已经存在的makefile,另一个是CLI。我首先运行CLI makefile,获取必要的文件,然后使用项目的makefile将这些文件与现有项目链接起来。现在,问题是我每次将现有项目的函数添加到CLI文件时,CLI makefile会继续并建立这些函数,我不希望它这样做,因为那不是必需的,并且给我提供了警告和错误(因为我没有想要保持包括所有标题和.o的)。忽略来自make的函数

长话短说,我可以做些什么,使CLI的makefile忽略添加到CLI文件的功能,而不是在函数内部查看所有内容?

+0

如果CLI不依赖于要更改的文件,请不要将这些文件作为CLI Makefile中的依赖项添加。如果它依赖于它们,它肯定需要重建? – Useless 2012-08-03 19:06:12

+0

CLI确实依赖于它们,就它解析函数名称而言,它并不需要重建,因为它更关注函数的名称(实际字符串),而不是函数内部发生的事情。除此之外,我将在主项目中添加此CLI文件,它可以检查所需的功能! – Scranton 2012-08-03 19:11:39

+1

如果CLI依赖于声明函数的头,但不依赖于'.c',它只会在函数添加/删除/重命名时重新编译,而不是在实现更改时重新编译。 – Useless 2012-08-03 19:20:50

回答

1

让其中一个makefile在编译过程(-DuseCLI)中为宏添加一个定义(称为useCLI)。对于你不想编译的函数,用#ifndef useCLI#endif环绕它们。不过,要小心依赖关系。

+0

非常好!这可能真的有帮助! – Scranton 2012-08-03 19:13:51