2012-03-26 53 views
2

我有一大堆的C和C++代码。我必须将来源发布给两个不同的客户。我不希望他们看到其他人的功能。所以,我打算使用开关进行编译。何时提供代码,我想删除几行代码。我知道我可以写一个脚本来做,但我想知道是否有任何工具可以完成这项工作。是否有一种工具可以剥离定义的开关下的代码?

#ifdef CUSTOMER_1 
Code for Customer 1 
#else //Customer_2 
Code for Customer 2 
#endif 

对于客户2,我想有删除的代码来#ifdef#else下。我想删除该行#endif。有没有可用的工具?

+1

是的,不止一个。谷歌“部分C预处理器”。 – 2012-03-26 18:08:42

+0

这就是我正在寻找的东西。让我尝试一下。 – Kitcha 2012-03-26 18:28:53

回答

4

有一个实用工具,名为unifdef,专门为此目的而设计的。

+0

我明白了,谢谢。 – Kitcha 2012-03-26 18:50:52

0

C预处理器当然可以为你做,但它也可以处理任何其他指令。我认为你最好用专门的脚本来做到这一点

2

为什么不把客户特定位放在customers.h文件中并包含该文件?你给不同的客户不同customers.h。你还没有完全解释这个问题,但通过第一次嗅探,源代码的静态过滤是一个混乱。

+0

我喜欢这个解决方案,因为它会让你的顾客感觉特别。 – Mikhail 2012-03-26 18:16:37

+0

如果他们觉得特别,你做错了。他们不应该知道你在做这件事。如果他们意识到他们是一个特例,他们也会意识到还有其他特殊情况,而且他们并不特殊,因为还有其他的客户就像他们一样。 :) – 2012-03-26 18:50:59

相关问题