2012-03-26 12 views
2

Ich habe ein Stück C- und C++ - Code. Ich muss die Quelle an zwei verschiedene Kunden freigeben. Ich möchte nicht, dass sie sehen, was die anderen haben. Also, ich plane, Schalter für die Kompilierung zu verwenden. Wenn ich den Code ausliefern möchte, möchte ich, dass einige Zeilen des Codes entfernt werden. Ich weiß, dass ich ein Skript dafür schreiben kann, aber ich würde gerne wissen, ob es irgendwelche Werkzeuge gibt, die diese Aufgabe erfüllen.Gibt es ein Tool zum Entfernen von Code unter Switches definiert?

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

Für Kunden 2 würde Ich mag den Code entfernt haben, die unter #ifdef und #else kommt. Ich möchte die Zeile #endif entfernen. Gibt es irgendwelche Werkzeuge, die dafür leicht verfügbar sind?

+1

Ja, mehr als eins. Google "teilweise c Präprozessor". –

+0

Genau das habe ich gesucht. Lass mich das versuchen. – Kitcha

Antwort

4

Es gibt ein Dienstprogramm namens unifdef, das genau für diesen Zweck entwickelt wurde.

+0

Ich habe es, danke. – Kitcha

0

Der C-Präprozessor kann dies natürlich für Sie erledigen, aber er wird auch alle anderen Anweisungen bearbeiten. Ich denke, dass Sie das am besten mit einem spezialisierten Skript tun würden

2

Warum Sie nicht über die kundenspezifische Bits in a Setzen Sie eine customers.h Datei und schließen Sie die Datei? Sie geben unterschiedliche Kunden customers.h. Sie haben das Problem nicht vollständig erklärt, aber beim ersten Sniff ist die statische Filterung des Quellcodes ein Kludn.

+0

Ich mag diese Lösung, weil sie Ihren Kunden das Gefühl gibt, etwas Besonderes zu sein. – Mikhail

+0

Wenn sie sich besonders fühlen, haben Sie es falsch gemacht. Sie sollten nicht wissen, dass Sie es tun. Wenn sie erkennen, dass sie ein Sonderfall sind, werden sie auch erkennen, dass es andere spezielle Fälle gibt, und dass sie nicht besonders sind, weil es andere Kunden gibt, die genau wie sie sind. :) –

Verwandte Themen