<> == Organisatorisches == === Bis wann werden die Übungsblätter korrigiert? === ||'''A:''' Die Tutoren, die für die Korrektur der Übungsblätter verantwortlich sind, studieren ebenfalls. Die Korrektur sollte trotzdem immer spätestens zur nächsten Vorlesung vorliegen.|| == Programmieren in C++ == == Betriebssystem Spezifisches == === Warum kann ich nicht Windows verwenden? === ||'''A:''' Es sprechen viele Gruende dafuer, dass Sie 'Linux lernen' sollen. Einer davon ist es z.B. sich mit den grundlegenden Problemen des Programmierens & Kompilierens per Kommandozeile und Editor zu befassen um dann anschliessend mächtigere Tools & IDEs effizienter und kompetenter einsetzen zu können.|| === Welches Linux soll ich verwenden? === ||'''A:''' Das ist völlig egal, jede Linux Distribution genügt den Vorraussetzungen für diese Veranstaltung. Eine einfache Möglichkeit stellen darüber hinaus sogenannte [[http://www.vmware.com/appliances/ | Appliances]] dar. Das sind [[http://de.wikipedia.org/wiki/Virtuelle_Maschine | Virtuelle Maschinen]] gebündelt mit einem vorinstallierten Betriebssystem. So kann man Linux verwenden ohne sein gegenwärtiges Betriebssystem ersetzen zu müssen. Für Einsteiger hat sich [[http://www.ubuntu.com/GetUbuntu/download | Ubuntu]][[http://www.vmware.com/appliances/directory/1224 | (VMWare Appliance)]] als einfach zu benutzende Distribution bewährt. Es ist aber grundsätzlich jedes Linux verwendbar, das den C++ GNU Compiler g++, make, Python und einen Editor installiert hat.|| === Mein WLAN funktioniert nicht. === ||'''A:''' Wenden Sie sich an unsere [[http://www.studium.uni-freiburg.de/newsletter/2009/11/rz.html|Mitarbeiter im Rechenzentrum]]. Ihnen wird dort etwa beim Einrichten fehlender Treiber geholfen.|| == Versionsverwaltung (SVN) == === Fehlermeldung 'svn: "." is not a working copy'. === ||'''A:''' Sie befinden sich nicht in einer 'working copy' Ihres Arbeitsverzeichnisses. Wechseln Sie den Ordner und vergewissern Sie sich etwa mit 'svn info', dass Sie sich nun in Ihrem Arbeitsverzeichnis befinden. Wenn Sie die Meldung weiterhin erhalten, haben Sie ihr Arbeitsverzeichnis erneut auszuchecken.|| === Fehlermeldung 'svn: warning: 'folder-x' is already under version control' === ||'''A:''' Im Ordner folder-x befindet sich bereits ein Ordner '.svn', der Subversion anzeigt, dass sich 'folder-x' unter Versionskontrolle befindet. Falls Ihr Ordner 'folder-x' sich de facto aber nicht unter Versionskontrolle befindet, da Sie ihn noch nicht comittet haben, liegt die Fehlermeldung womöglich daran, dass Sie den Ordner .svn versehentlich nach 'folder-x' kopiert haben. In diesem Fall löschen Sie einfach den Ordner '.svn' in 'folder-x' und versuchen Sie erneut 'folder-x' zu comitten.|| == Kompiliervorgang (g++ & make) == === Fehlermeldung: /usr/local/lib/libgtest.so undefined reference to 'pthread_...' === ||'''A:''' Kompilieren Sie Ihr Programm mit der Option '-pthread'. TODO(hoffmaje): explain a little why -pthread is needed!|| === Fehlermeldung: Makefile 8 ***missing seperator. Schluss.? === ||'''A:''' GNU Make besteht darauf, dass nach einem Target, z.B. 'build' jedes folgende Kommando mit einem TAB beginnt. Stellen Sie sicher, dass in der Makefile, hier in Zeile 8, das Kommando mit einem TAB beginnt.|| === Ich erhalte seitenlange, kryptische Fehlermeldungen. === ||'''A:''' Mit einiger Wahrscheinlichkeit handelt es sich um einen 'linker Fehler', d.h. in der Zeile mit der Sie Ihr Programm kompilieren, fehlt ein Verweis auf eine Objektdatei (.o) oder eine Bibliothek (.a, .so) oder einer der von Ihnen angegebenen Verweise konnte nicht gefunden werden. Vergewissern Sie sich, dass Ihr Compileraufruf alle Objektdateien und Bibliotheken auflistet, die Ihr Programm benoetigt und dass alle diese Verweise existieren und durch den Compiler gefunden werden koennen.|| == Stilfragen (Lint) == === Ich finde Lint zu pingelig. Muss das denn sein? === ||'''A:''' Ja, es muss. Sie werden nach den ersten Uebungsblaettern die typischen Lint Fehler kennen und nach nicht geraumer Zeit werden Sie automatisch Code schreiben, der keine oder kaum Lint-Fehler mehr verursacht.||