|
18 | 18 |
|
19 | 19 | Nehmen wir z.B. mal folgendes Programm: |
20 | 20 |
|
21 | | -\inputcpp{fehler1.cpp} |
| 21 | +\inputcpp{noImport_broken.cpp} |
22 | 22 |
|
23 | 23 | Wenn wir versuchen, dieses zu kompilieren, gibt uns \texttt{g++} folgendes aus: |
24 | 24 |
|
25 | | -\begin{textcode*}{label=g++ -o fehler1 fehler1.cpp} |
26 | | - fehler1.cpp: In function 'int main()': |
27 | | - fehler1.cpp:2:5: error: 'cout' is not a member of 'std' |
28 | | - fehler1.cpp:2:35: error: 'endl' is not a member of 'std' |
| 25 | +\begin{textcode*}{label=g++ -o noImport_broken noImport_broken.cpp} |
| 26 | + noImport_broken.cpp: In function 'int main()': |
| 27 | + noImport_broken.cpp:2:5: error: 'cout' is not a member of 'std' |
| 28 | + noImport_broken.cpp:2:35: error: 'endl' is not a member of 'std' |
29 | 29 | \end{textcode*} |
30 | 30 |
|
| 31 | +Je nach Compiler und Betriebssystem kann die Nachricht abweichen, im generellen ist der Fehler |
| 32 | +aber immer auf das \texttt{std} bzw \texttt{cout} und \texttt{endl} zurückzuführen. |
| 33 | + |
31 | 34 | Wenn wir diese Fehlermeldung verstehen wollen, fangen wir immer ganz oben an, |
32 | 35 | egal wie viel Text uns der Compiler ausspucken mag. In diesem Fall sagt uns die |
33 | | -erste Zeile, in welcher Datei (\texttt{fehler1.cpp}) der Fehler aufgetreten ist |
| 36 | +erste Zeile, in welcher Datei (\texttt{noImport_broken.cpp}) der Fehler aufgetreten ist |
34 | 37 | und in welcher Funktion (\texttt{int main()}). Die beiden Zeilen |
35 | 38 | danach sind sogar noch spezifischer: Sie enthalten zu Beginn den Dateinamen, |
36 | 39 | dann einen Doppelpunkt, gefolgt von einer Zeilennummer, gefolgt von einer |
|
50 | 53 |
|
51 | 54 | Der nächste sehr häufig vorkommende Fehler ist subtiler: |
52 | 55 |
|
53 | | -\inputcpp{fehler2.cpp} |
| 56 | +\inputcpp{noSemicolon_broken.cpp} |
54 | 57 |
|
55 | 58 | Wenn wir versuchen, dies zu kompilieren, bekommen wir vom Compiler |
56 | 59 | entgegengespuckt: |
57 | 60 |
|
58 | | -\begin{textcode*}{label=g++ -o fehler2 fehler2.cpp} |
59 | | - fehler2.cpp: In function 'int main()': |
60 | | - fehler2.cpp:5:1: error: expected ';' before '}' token |
| 61 | +\begin{textcode*}{label=g++ -o fehler2 noSemicolon_broken.cpp} |
| 62 | + noSemicolon_broken.cpp: In function 'int main()': |
| 63 | + noSemicolon_broken.cpp:5:1: error: expected ';' before '}' token |
61 | 64 | \end{textcode*} |
62 | 65 |
|
63 | 66 | Wiederum sagt uns die erste Zeile, in welcher Datei und Funktion der Fehler |
|
88 | 91 | korrekt arbeitet (schaut euch ggf. die bisher gezeigten Quellcodes an)? |
89 | 92 | \end{enumerate} |
90 | 93 |
|
91 | | -\inputcpp{fehler3.cpp} |
92 | | -\inputcpp{fehler4.cpp} |
| 94 | +\inputcpp{noBracket_broken.cpp} |
| 95 | +\inputcpp{wrongDirection_broken.cpp} |
93 | 96 |
|
94 | 97 | \begin{spiel} |
95 | 98 | \begin{enumerate} |
|
103 | 106 | \end{enumerate} |
104 | 107 | \end{spiel} |
105 | 108 |
|
106 | | -\inputcpp{fehler5.cpp} |
| 109 | +\inputcpp{noSemicolon2_broken.cpp} |
107 | 110 |
|
108 | 111 | \textbf{Quiz 4}\\ |
109 | 112 | \textit{Was hiervon sind Fehler, die dazu führen, dass eine Datei nicht kompiliert werden kann?} |
|
0 commit comments