Project

General

Profile

C++ Projektvorlage » History » Version 1

Daniel Giritzer, 12/01/2017 05:37 PM

1 1 Daniel Giritzer
h1. C++ Projektvorlage
2 1 Daniel Giritzer
3 1 Daniel Giritzer
*Dieser Eintrag betrifft nur die Alte C++ Projektvorlage für Linux.*
4 1 Daniel Giritzer
[[https://projects.nwrk.biz/attachments/download/1/Cpp_Template.tar.gz]]
5 1 Daniel Giritzer
6 1 Daniel Giritzer
h1. Generische und flexible Projektvorlage für SDP3
7 1 Daniel Giritzer
8 1 Daniel Giritzer
h2. Abhängigkeiten
9 1 Daniel Giritzer
10 1 Daniel Giritzer
Um diese Vorlage verwenden zu können werden folgende
11 1 Daniel Giritzer
Programme vorrausgesetzt (ein großteil ist normalerweiße
12 1 Daniel Giritzer
standardmäßig installiert):
13 1 Daniel Giritzer
14 1 Daniel Giritzer
perl, texlive-full, doxygen, graphviz, tcl, whiptail,
15 1 Daniel Giritzer
liblib-abs-perl, libmoose-perl, tk, libany-moose-perl,
16 1 Daniel Giritzer
libnamespace-autoclean-perl, libperl6-junction-perl,
17 1 Daniel Giritzer
libmoosex-role-parameterized-perl, libhash-fieldhash-perl, 
18 1 Daniel Giritzer
libcapture-tiny-perl, libc-bin, libdata-section-simple-perl, 
19 1 Daniel Giritzer
libmoo-perl, libipc-run3-perl, libwant-perl, 
20 1 Daniel Giritzer
libtype-tiny-perl, exuberant-ctags, dia2code
21 1 Daniel Giritzer
22 1 Daniel Giritzer
Diese Abhängigkeiten können mit dem generate script auf 
23 1 Daniel Giritzer
einer Debian basierenden GNU/Linux Distribution (apt) wie 
24 1 Daniel Giritzer
folgt Installiert werden:
25 1 Daniel Giritzer
$ ./generate install
26 1 Daniel Giritzer
27 1 Daniel Giritzer
Diese weiteren Programme werden außerdem empfohlen:
28 1 Daniel Giritzer
dia, codeblocks
29 1 Daniel Giritzer
30 1 Daniel Giritzer
h2. Deckblatt
31 1 Daniel Giritzer
32 1 Daniel Giritzer
Die Angabe muss sich im Unterordner 'Dateien/doc' befinden
33 1 Daniel Giritzer
und in 'Angabe.pdf' umbenannt werden. Das Angabeblatt wird 
34 1 Daniel Giritzer
automatisch beim erstellen der Latex Doku mit den in der 
35 1 Daniel Giritzer
Abgabe.tex Datei enthaltenen Eingaben ausgefüllt. Falls
36 1 Daniel Giritzer
nötig können die Koordinaten der Eingaben in der
37 1 Daniel Giritzer
'Dateien/config/docsettings.tex' Datei angepasst werden.
38 1 Daniel Giritzer
39 1 Daniel Giritzer
h2. Quellcode
40 1 Daniel Giritzer
41 1 Daniel Giritzer
Der Quellcode des SDP Projekts gehört in den Unterordner
42 1 Daniel Giritzer
'Dateien/src'. In disem Unterordner befindet sich auch ein
43 1 Daniel Giritzer
Makefile welches automatisch alle *.cpp Dateien kompiliert
44 1 Daniel Giritzer
und linkt. (mit und ohne Debugging Informationen). Genauere 
45 1 Daniel Giritzer
Infos zur Handhabung dieses Makefiles kann man aus den darin
46 1 Daniel Giritzer
enthaltenen Kommentaren entnehmen. Alle Source und Header
47 1 Daniel Giritzer
Dateien in diesem Ordner werden automatisch in die Latex 
48 1 Daniel Giritzer
Doku eingebunden.
49 1 Daniel Giritzer
50 1 Daniel Giritzer
h2. Dokumentation
51 1 Daniel Giritzer
52 1 Daniel Giritzer
Generell sollte der Sourcecode mit DoxyGen Kommentarblöcken 
53 1 Daniel Giritzer
kommentiert werden. Systemdokumentation, Organisatorische 
54 1 Daniel Giritzer
Informationen, Erläuterungen zum Testtreiber, und die Ausgabe
55 1 Daniel Giritzer
des Testtreibers sollen in die dementsprechenden Dateien im
56 1 Daniel Giritzer
'Dateien/doc' Verzeichnis eingetragen werden. Allgemeine Infos 
57 1 Daniel Giritzer
zum Projekt sollen in der 'Abgabe.tex' Datei im Wurzelverzeichnis
58 1 Daniel Giritzer
ergänzt werden.
59 1 Daniel Giritzer
60 1 Daniel Giritzer
h2. UML Diagramm
61 1 Daniel Giritzer
62 1 Daniel Giritzer
Diese Projektvorlage arbeitet mit zwei Diagrammformaten:
63 1 Daniel Giritzer
- .dot Graphviz Diagramme
64 1 Daniel Giritzer
- .dia Dia Diagramme
65 1 Daniel Giritzer
66 1 Daniel Giritzer
Das UML Diagramm muss sich im Unterordner 'Dateien/uml' befinden.
67 1 Daniel Giritzer
Für die Abgabe muss es außerdem im PNG Format gespeichert sein 
68 1 Daniel Giritzer
und den Dateinamen 'UML.png' besitzen. Standardmäßig 
69 1 Daniel Giritzer
('$ ./generate all') erzeugt das generate Script aus dem 
70 1 Daniel Giritzer
Quellcode automatisch ein Graphviz UML Diagramm und 
71 1 Daniel Giritzer
generiert daraus ein Bild im PNG Format nach 'Dateien/uml/UML.png' 
72 1 Daniel Giritzer
(ACHTUNG: existiert diese Datei bereits wird sie überschrieben!). 
73 1 Daniel Giritzer
Dieses Diagramm ist aber in der Regel nicht Fehlerfrei, man kann
74 1 Daniel Giritzer
es aber mit 'dotty' editieren. Es wird auch ein mit DIA
75 1 Daniel Giritzer
editierbares Diagramm erzeugt. Generell wird jedoch empfohlen
76 1 Daniel Giritzer
selbst ein DIA UML Diagramm zu erstellen, weil man sich daraus
77 1 Daniel Giritzer
schon ein Codegerüst gnerieren lassen kann ('$ ./generate src'). 
78 1 Daniel Giritzer
Dazu muss das DIA Diagramm unter 'Dateien/uml/UML.dia'
79 1 Daniel Giritzer
gespeichert sein. Das Codegerüst wird nach 'Dateien/src/generated_from_uml'
80 1 Daniel Giritzer
generiert. Um ein Handout mit einem selbstgezeichneten UML Diagramm 
81 1 Daniel Giritzer
zu erstellen muss man dieses nach 'Dateien/uml/UML.png' kopieren
82 1 Daniel Giritzer
und die Abgabe mittels  '$ ./generate handout' zu erzeugen.
83 1 Daniel Giritzer
84 1 Daniel Giritzer
h2. Log Dateien
85 1 Daniel Giritzer
86 1 Daniel Giritzer
Sollte irgendetwas nicht Funktionieren, kann man in den Log
87 1 Daniel Giritzer
Dateien unter Dateien/log nach Hinweisen suchen. Die Haupt- 
88 1 Daniel Giritzer
logging Datei mit den wahrscheindlich wichtigeren 
89 1 Daniel Giritzer
Infos ist hierbei 'Dateien/log/general.log'.
90 1 Daniel Giritzer
91 1 Daniel Giritzer
h2. Design anpassen
92 1 Daniel Giritzer
93 1 Daniel Giritzer
Das Design der Vorlage kann mit den '*.tex' Dateien im Verzeichnis
94 1 Daniel Giritzer
'Dateien/config' angepasst werden. Genaueres kann aus den Kommentaren
95 1 Daniel Giritzer
dieser Dateien entnommen werden. 
96 1 Daniel Giritzer
97 1 Daniel Giritzer
Beschreibung der Dateien:
98 1 Daniel Giritzer
packages.tex		- Beinhaltet alle verwendeten Pakete.
99 1 Daniel Giritzer
setup_doxygen.tex 	- Beinhaltet alle von DoxyGen benötigten 
100 1 Daniel Giritzer
			  Pakete, und für DoxyGen extra definierte 
101 1 Daniel Giritzer
			  Befehle (aus refman.tex übernommen).
102 1 Daniel Giritzer
codesettings.tex	- Beinhaltet Einstellungen für das Syntax
103 1 Daniel Giritzer
			  Highlighting der Quellcode Dateien.
104 1 Daniel Giritzer
docsettings.tex		- Beinhaltet generelle Dokumenteinstellungen (
105 1 Daniel Giritzer
			  Kopf- und Fußzeile, Inhaltsverzeichnis,
106 1 Daniel Giritzer
			  Deckblatt, ...).
107 1 Daniel Giritzer
108 1 Daniel Giritzer
h2. Handhabung des generate Scripts
109 1 Daniel Giritzer
110 1 Daniel Giritzer
Das Script MUSS immer im Hauptverzeichnis mit der Verknüpfung 
111 1 Daniel Giritzer
im Hauptverzeichnis ausgeführt werden.
112 1 Daniel Giritzer
113 1 Daniel Giritzer
114 1 Daniel Giritzer
/SDP/hauptverzeichnis $ ./generate [option]
115 1 Daniel Giritzer
Verfügbare Optionen:
116 1 Daniel Giritzer
all     - generiert komplette Abgabe (incl. UML.png + UML.dia)
117 1 Daniel Giritzer
handout - generiert komplette Abgabe (ohne UML.png + UML.dia)
118 1 Daniel Giritzer
uml     - generiert nur UML.png und UML.dia
119 1 Daniel Giritzer
src	- generiert ein Codegeruest aus einem bestehenden UML.dia 
120 1 Daniel Giritzer
	  Diagramm
121 1 Daniel Giritzer
pdf     - generiert nur Abgabe.pdf
122 1 Daniel Giritzer
clean   - löscht alle temporär angelegte Dateien
123 1 Daniel Giritzer
install - installiert benötigte Paket
124 1 Daniel Giritzer
125 1 Daniel Giritzer
h2. Zusammenfassung
126 1 Daniel Giritzer
127 1 Daniel Giritzer
Damit dass "generate" Script verlässlich eine Abgabe generiert muss
128 1 Daniel Giritzer
folgendes gegeben sein:
129 1 Daniel Giritzer
- alle Abhängigkeiten Installiert ($ ./generate install)
130 1 Daniel Giritzer
- Angabe.pdf im Dateien/doc Ordner
131 1 Daniel Giritzer
- Quellcode mit DoxyGen Kommentaren im Dateien/src Ordner
132 1 Daniel Giritzer
- allgemeine Infos in der Abgabe.tex ausgefüllt
133 1 Daniel Giritzer
- ausgabe des Testtreibers in Dateien/doc/Output_Testtreiber.tex
134 1 Daniel Giritzer
- Resultat Testtreiber in Dateien/doc/Erlauterung_Test.tex beschrieben
135 1 Daniel Giritzer
- Aufgabenverteilung in Dateien/doc/Organisatorisches.tex eingetragen
136 1 Daniel Giritzer
- Systemspezifikation in Dateien/doc/Systemspezifikation.tex beschrieben
137 1 Daniel Giritzer
- UML Diagramm als Dateien/uml/UML.png gespeichert
138 1 Daniel Giritzer
139 1 Daniel Giritzer
Bleibt das generate script 'hängen' fehlt meist eine der oben genannten
140 1 Daniel Giritzer
Dateien.
141 1 Daniel Giritzer
142 1 Daniel Giritzer
(C) 2016 Daniel Giritzer
143 1 Daniel Giritzer
daniel@giritzer.eu
144 1 Daniel Giritzer
FH-Hagenberg, HSD