Hallo, ich hoffe jemand kennt sich etwas mit dem tool doxygen aus??
Ich nutze es schon länger, hab jetzt jedoch ne kleinigkeit, die ich
gerne besser lösen möchte
Hier ein Ausschnitt:
1
/* Initialsierung der C-Bus-Schnittstelle: */
2
ucCbusInit_Ready=0;/* Die entsprechende Flag-Variable */
3
/* zuruecksetzen ! */
Ist nicht mein Code, ich muss den nur erweitern,...
Überall sind diese riesen Kommentarblöcke, was den Code etwas
unübersichtlich macht.
Jetzt kommt Doxygen ins spiel,...
Um diese Unübersichtlichkeit wenigstens aus der Codeauflistung der HTML-
Doku zu nehmen möchte ich dass doxygen die ganzen Kommentare nicht
übernimmt.
Dazu gäbe es:
@cond ... @endcond
Wenn ich das jetzt jedoch in die Kommentare einfüge, geht die
übersichtlichkeit im Code endgültig verloren...
Gibts da vielleicht noch eine andere, bessere Möglichkeit??
Danke schonmal...
Gruß µCnoob
Du willst quasi den C-Code, den Doxygen als Doku anlegt, von allen
Kommentaren befreien, was irgendwo vielleicht auch sinnvoll ist, da
Doxygen den Kram ja sowieso dokumentiert...hm?
Jags einfach durch den Präprozessor:
Ok, genau das meinte ich,...
aber ich habs nicht so ganz verstanden??
Ich kenne das mit dem Präprozessor nur mit #defines (wie in der Doku
beschrieben).
1
#define VERSION 200
2
#define CONST_STRING const char *
3
#if VERSION < 200
4
staticCONST_STRINGversion="2.xx";
5
#else
6
staticCONST_STRINGversion="1.xx";
7
#endif
Aber wie mach ich das mit kommentaren??
Noch als kleine Anmerkung, ich nutze Windows, (ich wurde gezwungen, bin
Linux nutzer, aber eben nicht überall,...)
Wie kann ich die Kommentare durch den Präprozessor in Windows
rausschmeißen?? Wo stell ich das ein??
Danke,
µCnoob
Naja, prinzipiell macht der Präprozessor sowas:
* Kommentare rausschmeißen, dann hats der Compiler einfacher
* #define und Co. auflösen und ersetzen
* Trigraphen ersetzen usw.
Mit -fpreprocessed teilt man dem mit, dass die Datei eigentlich schon
verarbeitet wurde, d.h., dass obige Aufgaben schon erledigt sind (was
natürlich nicht der Fall ist). Das veranlasst den Präprozessor, nur noch
Kommentare zu entfernen.
Windows? Keine Ahnung, aber es gibt bestimmt andre Tools. Konnte Doxygen
das nicht sogar auch erledigen?!
Hi, danke,...
aber hast du vlt. ne Idee, wo man in windows die obigen Zeilen einfügen
könnte??
cpp -fpreprocessed test.c
"Wie schön ist doch die shell!"
Ich hab echt keinen Schimmer, wie ich das Doxygen unter Windows
beibringen soll, dass alle kommentare raus sollen! Ich seh auch niergens
die möglichkeit obige Zeile irgendwo einzugeben??
Oder hat vlt. jemand Anderes von euch ne Idee??
Gruß
noob
Ok, nur wie??
cpp -fpreprocessed test.c
Ist doch ne Linux direktion, wie mach ich das jetzt über cmd??
Ich muss zugeben, dass ich von Windows nur Grundkenntnisse besitze,
mausspieler!! Sobalds an die windows-eingabeaufforderung, geht ist bei
mir Ende,...
Wie genau geb ich das jetzt ein, bzw. geht das überhaupt??
Gruß
noob
Ohja, wie schön wäre C-code ohne die dämlichen Kommentare. Und am besten
noch viele Operationen kryptisch in einer zeile damit nur noch
Eingeweihte und C-Gurus den Code lesen können.
Sei froh das dein Vorgänger alles schön sauber kommentiert hat, vor
allem auch warum er die einzelnen Operationen durchführt.
Und wenn du jetzt auch noch Doxygen, ein Dokumentationstool, kastrieren
willst, schade drum. Für was ist Doxygen denn da? Funktionsübersicht und
Details der Parameter und Funktion, erweiterte Links mit PDF, Formeln
etc. und zusätzlich mit Link zum (eingebetteten) Sourcecode. Aber auch
dieser sollte dann Aufschluss über die Funktionsweise und den Ablauf
geben. Sonst brauche ich diese Teile nicht in einer Doku.
Sorry das ich keine Hilfe zu deinem Problem geben konnte und statt
dessen was ganz anderes geschrieben habe, aber ich habe leider mit zu
vielen Leuten zu tun die verständliche Programmierung und Kommentierung
ablehnen bzw als lästige Pflicht sehen.
JL
Als Konsolenersatz gibt es das Programm "Command Prompt" (Start ->
Programme -> Command Prompt). Dort kannst du das dann ausführen lassen.
Als Alternative würde ich dir aber in diesem Fall ein eigenes makefile
empfehlen. Dort einfach make doku und die entsprechenden Aufrufe für
c-compiler und doxygen aufrufen. Sieht dann genauso wie in Linux aus.
JL
@jl
In erster Linie ist Doxygen dafür da, einen Überblick über die
Funktionen und deren Aufgaben zu geben, NICHT über den gesamten
Quelltext!
Wer dann doch mehr als die Struktur der Funktionen untereinander wissen
will, der muss sich eh den Quellcode mit den entsprechenden Kommentaren
ansehen! Da wird nix kastriert oder ähnliches, es wird mehr übersicht
geschaffen!
Und wenn du den Code vor dir liegen hättest, dann würdest du hier nicht
so großspurig daherreden sondern selber versuchen eine gewisse Struktur
in diesen oftmals total überflüssigen Kommentarwirrwar zu bekommen!
@all
danke für die bisherige Hilfe,
wenn jemand eine Lösung hätte, wäre ich froh,...
Gruß
noob
ich habs versucht und er meinte:
Der Befehl "cpp" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Vlt. hab ich auch etwas falsch eingegeben??
Ne idee??
Gruß
µCNoob wrote:
> Hi, danke,...>> aber hast du vlt. ne Idee, wo man in windows die obigen Zeilen einfügen> könnte??> cpp -fpreprocessed test.c>> "Wie schön ist doch die shell!"
Und Windows hat keine Shell, ja ne ist klar!
Wie schon gesagt: Start->ausführen->"cmd"
EDIT: Hast du denn den gcc in deiner PATH Variable eingetragen?
Rechtsklick Arbeitsplatz->Eigenschaften->Erweitert->Umgebungsvariablen.
Ich hab WinAVR im Path drin,
aber das sollte es doch tun??
Immerhin beinhaltet das ja GCC...
Aber vlt. mach ichs ja in der Falschen direction??
Ich habs folgendermaßen (in cmd.exe) eingegeben:
C:\Projektname\ProjectCode>cpp -fpreprocessed cFile.c
Mach ich was falsch??
Gruß
geh mal mit
c:
cd Projektname\ProjectCode
dir (nur als check ob du im richtigen Verzeichniss bist)
in dein code verzeichniss. Sonst sucht der compiler in deinem
Ausgangsverzeichniss des File und findet es nicht
dort rufst du dann
cpp -fpreprocessed cFile.c
sollte dann eigentlich funktionieren.
Hey danke, sorry dass ich mich jetzt erst melde,...
der Vorschlag hat leider wieder nicht funktioniert??
Wieder das gleiche:
"Der Befehl "cpp" ist entweder falsch geschrieben oder
konnte nicht gefunden werden."
Noch ne Idee??
Sonst beiß ich halt in den sauren Apfel und lass es so,...
dann wird der spätere "Doku"- Leser eben gelegentlich über ein paar
seltsame Kommentare stolpern.
g
µCn
Ok, jetzt hatts geklappt,
also den Befehl in der Eingabekonsole auszuführen,...
Aber irgendwie ohne Wirkung??
Alle Kommentare sind noch drin,...
Hab ich noch irgendeine Einstellung bei Doxygen verpennt??
Gruß
µCn
Man könnte z.B. auch mit dem Editor PSPad oder einem anderen Tool über
alle Dateien mit "regulären Ausdrücken" nach den Kommentaren Suchen und
diese durch nichts ersetzen, also löschen. Geht also alles mit zwei,
drei Mausklicks und dem entsprechenden regulären Ausdruck, dessen Syntax
ich aber leider nicht mächtig bin. Hier gibts sicher Leute die da
weiterhelfen können.
Hi, Danke erstmal, aber:
cygdrive runtergeladen und versucht:
Gleiche wie mit der Eingabeaufforderung,...
Der Code wird zwar durchlaufen, aber in der Doxygendoku tauchen die
Kommentare weiterhin auf...
Langsam komm ich mir richtig blöd vor, ;-)
Naja, vlt. hat ja noch jemand einen Rat
Gruß
PS:
@Jonny
Danke für deinen Vorschlag, aber,...
Da hatte jl schon recht:
"wie schön...ohne dämliche kommentare"
Die Kommentare will ich ja nicht löschen, sondern nur aus der
Doxygendoku entfernen. Im html sollen nur die Funktionen dokumentiert
werden, für jemanden der neue Funktionen hinzufügen möchte und das
innenleben vorhandener Funktionen nicht wissen muss. Aber es kann ja
auch sein, dass man vorhandene Funktionen ändern muss, dafür sind dann
die Kommentare im Code (.c-, .h- file) sehr wichtig.
Ach so, sag das doch gleich ;-)
In diesem Fall kannst Du die Funktionen lediglich im H File mit
Doxygen-Kommentaren versehen und die C Files gar nicht erst von Doxygen
verarbeiten lassen. Dann hast Du alle Funktionen dokumentiert, ohne das
Innenleben zu zeigen.
Wenn du dieses cpp ausführst, dann erscheint der ganze Kram ja ohne
Kommentare aufm Bildschirm... die Original-Dateien werden davon aber
nicht verändert, dass ist dir doch bewusst, ja?
Hm,...
d.h. dann kann ich damit ga nicht aus der Doxygen- Doku die Kommentare
raus nehmen??
Naja egal, dann werd ichs eben so machen wies Jonny vorgeschlagen hat.
Danke euch allen für eure Hilfe,...
Gruß
µCn
µCNoob wrote:
> Hm,...> d.h. dann kann ich damit ga nicht aus der Doxygen- Doku die Kommentare> raus nehmen??
Na sicher, musst die Ausgabe ohne die Kommentare halt umleiten und
abspeichern. Wahlweise halt den CPP als Präprozessor für Doxygen
benutzen, siehe Anleitung.
> Naja egal, dann werd ichs eben so machen wies Jonny vorgeschlagen hat.
Jubb, das ist die eleganteste Variante.
Ich glaube das führt alles zu nichts.
So wie ich Doxygen benutzte liest es das C-File, extrahiert den
Dokumentationsteil und bindet gleichzeitig den Code in HTML ein um zu
verlinken. Der Preprozessor schmeisst alle Komentare heraus, auch die
Doxygenformatierungen.
Also hilft nur ein eigener Filefilter (selber schreiben) der alle
Kommentare // bis Zeilenende und /*...*/ herausfiltert, die
Doxygenformate /*! und //! aber drinlässt und dann als File-Inputfilter
in Doxygen als Vorfilter eingebunden wird.
JL
jl wrote:
> Der Preprozessor schmeisst alle Komentare heraus, auch die> Doxygenformatierungen.
Ja klar, alle Kommentare. Woher soll er zwischen Doxygen-Kommentaren und
normalen unterscheiden können ;)