Size: 26742
Comment:
|
Size: 58148
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 6: | Line 6: |
Die Folien von den einzelnen Vorlesungen als PDF: [[attachment:ProgrammierenCplusplusSS2010/vorlesung-1.pdf|Vorlesung 1]]. Die Aufnahmen der Vorlesungen als AVI: [[http://vulcano.informatik.uni-freiburg.de/recordings/cplusplus-ss2010/vorlesung-1.avi|Vorlesung 1]]. Die Übungsblätter als PDF: [[attachment:ProgrammierenCplusplusSS2010/uebungsblatt-1.pdf|Übungsblatt 1]]. Erklärungen zu den diversen "Systemen" die Sie benutzen sollen: [[ProgrammierenCplusplusSS2010/SVN|SVN]], [[ProgrammierenCplusplusSS2010/Make|Make]], [[ProgrammierenCplusplusSS2010/GTest|GTest]], [[ProgrammierenCplusplusSS2010/Lint|Lint]], [[ProgrammierenCplusplusSS2010/Editor|Editor]]. Hier die vier Dateien aus der Vorlesung 1 in einem ZIP Archiv: [[attachment:SumOfDigits.zip]] |
Die Folien von den einzelnen Vorlesungen als PDF: [[attachment:ProgrammierenCplusplusSS2010/vorlesung-1.pdf|Vorlesung 1]], [[attachment:ProgrammierenCplusplusSS2010/vorlesung-2.pdf|Vorlesung 2]]. Die Aufnahmen der Vorlesungen als AVI: [[http://vulcano.informatik.uni-freiburg.de/recordings/cplusplus-ss2010/vorlesung-1.avi|Vorlesung 1]], [[http://vulcano.informatik.uni-freiburg.de/recordings/cplusplus-ss2010/vorlesung-2.avi|Vorlesung 2]]. Die Übungsblätter als PDF: [[attachment:ProgrammierenCplusplusSS2010/uebungsblatt-1.pdf|Übungsblatt 1]], [[attachment:ProgrammierenCplusplusSS2010/uebungsblatt-2.pdf|Übungsblatt 2]]. Erklärungen zu den diversen "Systemen" die Sie benutzen sollen: [[ProgrammierenCplusplusSS2010/SVN|SVN]], [[ProgrammierenCplusplusSS2010/Make|Make]], [[ProgrammierenCplusplusSS2010/GTest|GTest]], [[ProgrammierenCplusplusSS2010/Lint|Lint]], [[ProgrammierenCplusplusSS2010/Editor|Editor]]. Hier die vier Dateien aus der Vorlesung 1 in einem ZIP Archiv: [[attachment:SumOfDigits.Vorlesung1.zip]] Hier die fünf Dateien aus der Vorlesung 2 in einem ZIP Archiv: [[attachment:SumOfDigits.Vorlesung2.zip]] |
Line 17: | Line 19: |
Axel Lehmann hat uns ein vorkunfiguriertes Linux-Image gebaut, zu finden unter http://78.143.60.101/cpp/. '''JensHoffmann 24.Apr2010''' Hier noch der offizielle Witz zur Vorlesung: [[http://www.ariel.com.au/jokes/The_Evolution_of_a_Programmer.html|Evolution of a Programmer]]. Der Termin für den Kurs steht jetzt fest: Montag, 26. April, 16 - 18 Uhr im SR 00-010/014 im Gebäude 101. Bringen Sie unbedingt Ihren Laptop mit, damit Sie alles gleich live nachvollziehen können. Und wenn irgend möglich sollte schon ein Linux installiert sein. Ob als einziges Betriebssystem, als zweites Betriebssystem neben Ihrem Windows, oder in einer Virtual Box/Machine ist egal, Hauptsache es ist etwas da. Wenn Sie das gar nicht selber hinkriegen (Tim Lechler wollte ja noch eine Anleitung schicken), schreiben Sie eine Mail an Jens Hoffmann < hoffmaje@informatik.uni-freiburg.de >. '''Hannah 23Apr10 14:23''' [[ProgrammierenCplusplusSS2010/Linux|Wer Interesse an einem Linux-Crash-Course nächsten Montag hat, bitte hier klicken.]] (Wer sich von der ersten Vorlesung sehr überfordert gefühlt hat und keinen Schimmer hat, wie er / sie das erste Übungsblatt lösen soll, sollte sich auf jeden Fall auch anmelden.) '''Hannah 21Apr10''' ''Allgemeine Mitteilung: Liebe Teilnehmerinnen und Teilnehmer. Manche von Ihnen, speziell die, die bisher noch gar keine Programmiererfahrung hatten, haben sich sicher von der ersten Vorlesung etwas überfahren gefühlt. Machen Sie sich bitte keine Sorgen. Ich habe die erste Vorlesung extra ein wenig als Rundumschlag angelegt, damit man einen Eindruck bekommt was alles dazu gehört und sich die Erfahreneren nicht langweilen. Versuchen Sie einfach das erste Übungsblatt so gut wie möglich zu lösen. Die vier Dateien aus der Vorlesung finden Sie unten, und es ist nicht notwendig zu diesem Zeitpunkt die ganzen Details zu verstehen. Je nach den Ergebnissen der ersten Übungsblätter und dem Feedback was von Ihnen kommt, werden wir dann schauen in welchem Tempo und an welcher Stelle wir weitermachen.'' '''Hannah 13Apr10''' == Fragen und Kommentare zur Vorlesung 1 / Übungsblatt (die neueste Frage zuoberst) == Ich kann die Manual Pages nicht runterladen. Wenn ich das eingebe was Jens am 24Apr10 umm 11.05 Uhr reingesetzt hat kommt nach dem Lesen der Statusinformationen "E: Konnte Paket http: nicht finden". BenN 25Apr10 21:04 |
Hudson ist nun wieder in Betrieb. Wir haben aber das automatische Builden nach jeder Änderung im SVN erstmal deaktiviert, d.h. Sie müssen Ihre Builds selbst anstoßen (auf den Link ''Build now'' in der Liste links klicken). Es wird dann jeweils die aktuelle Version im SVN gebaut. Die URL lautet [[http://stromboli.informatik.uni-freiburg.de:8082]], dort müssen Sie sich erst einloggen (mit ihrem RZ-Account und Passwort), dann in der Liste recht auf Ihren Build-Job klicken (der Job heißt so wie der Username von Ihrem RZ-Account) und dann kommen Sie zu der Seite, wo sie auf ''Build now'' klicken können. Sie kommen auch direkt auf die Seite mit [[http://stromboli.informatik.uni-freiburg.de:8082/jobs/USERNAME]], wobei USERNAME der Username von Ihrem RZ-Account ist. '''Hannah 4Mai10 16:17''' Es gab heute große Probleme mit dem Wiki, mit dem SVN und mit Hudson. Auf der Maschine auf der Wiki + SVN laufen (vulcano.informatik.uni-freiburg.de) sind die logs übergelaufen wodurch die Maschine praktisch eingefroren war. Da Hudson minütlich versucht auf diesen Rechner zuzugreifen wurden Unmengen von E-Mails mit Fehlermeldungen an Sie generiert, wir bitten dafür um Entschuldigung. Ich habe die Hudson-Instanzen jetzt erstmal abgeschaltet. SVN + Wiki sollten wieder funktionieren. Wir arbeiten an dem Problem und melden uns sobald Hudson wieder einsatzbereit ist. '''Hannah 1Mai10 22:35''' Also, wie es aussieht funktioniert Hudson nun und einige haben auch schon angefangen es zu benutzen. Ich habe allerdings noch eine kleine Änderung vorgenommen: Makefiles dürfen nun sowohl "Makefile" als auch "makefile" heißen (aus diesem Grund kamen vorher einige nicht auf stabil). Noch eine Anmerkung: falls ihr eine "Build fehlgeschlagen"-Mail erhaltet, kann es sein, dass ihr, wenn ihr auf den obersten Link klickt eine Fehlermeldung erhaltet, das liegt dann daran, dass ihr noch nicht eingeloggt seid. Außerdem gibt es nun einen Fehler, wenn "make lint build test" nicht fehlerfrei durchläuft (hat bisher aufgrund der "2 Blätter auf einmal" nicht funktioniert, aber ist gefixt). '''Ina 30Apr10 20:17''' Wir testen gerade noch unser Build-System (Hudson) und kann sein, dass Sie da ab und zu Meldungen vom System bekommen. Bitte einfach ignorieren, bis wir in einer neuen Mitteilung was anderes schreiben. Wir hoffen, dass wir es bis Freitag Abend so weit haben, dass Sie es benutzen können. '''Hannah 30Apr10 1:21''' Für alle, bei denen das Kompilieren des Test-Programms mit [[http://pastebin.com/3Jm30tCB|diesem oder einem ähnlichen]] Fehler scheitert, mögen in ihrem Makefile die option -pthread hinzufügen. Auch für die, die im TF-Pool arbeiten möchten ist dies erforderlich. Die betreffende Zeile im Makefile sollte dann etwa so aussehen: ''g++ -o testgetSumOfRF testmain.cpp -lgtest -lpthread''. '''TimL 1272446410 UTC -1 ''' Ich werde heute im Anschluss an die Vorlesung (gegen 17.15 Uhr) eine Einführung in den Editor Vim geben. Bei Interesse bringen Sie möglichst Ihren Laptop mit einer Installation von Vim mit, damit Sie alles was ich sage gleich nachvollziehen können. Windows oder Linux oder Mac ist dafür nicht wichtig, da Vim auf allen der bekannten Betriebssyteme mit dem gleichen look&feel läuft, download über http://www.vim.org. '''Hannah 28Apr10 8:04''' Da es nach wie vor Leute gibt, die mit grundlegenden Computerproblemen wie Netzwerk, Linux, etc. kämpfen, machen wir es jetzt so, dass Sie für das 1. + 2. Übungsblatt zusammen bis zum Mittwoch, den 5. Mai 16 Uhr Zeit haben. Nehmen Sie das aber bitte nicht zum Anlass jetzt eine Woche gar nichts zu machen, sondern versuchen Sie trotzdem das 1. Übungsblatt bis morgen (28. April) fertig zu machen und von der Verlängerung der Frist nur im Notfall Gebrauch zu machen. '''Hannah 27Apr10 15:02''' [[ProgrammierenCplusplusSS2010/ÄltereMitteilungen|Hier geht es zu den älteren Mitteilungen.]] == Fragen und Kommentare zur 2. Vorlesung / zum 2. Übungsblatt (und auch noch zum 1.) == @Ramin: Haben Sie auch die Kombination ''-lgtest -static'' ausprobiert? Damit müsste es eigentlich gehen. Das ''-static'' sagt ja nur, dass er grundsätzlich nach ''.a'' Dateien und nicht nach ''.so'' Dateien suchen soll. Den Namen der Bibliothek müssen Sie schon immer noch angeben (mit ''-lgtest'' eben). '''Hannah 4Mai10 22:13''' @Johanna: Schreiben Sie bitte ein Mail mit dem Namen Ihres RZ-Accounts an Jens Hoffmann <jgk.hoffmann@googlemail.com>, er wird Ihnen helfen können. '''Hannah 4Mai10 22:11''' Danke schön, jetzt hat alles wunderbar funktioniert. '''Madeleine 04Mai10 22:02''' Hallo, ich habe ein Problem mit dem -lgtest "Anhängsel" in der Makefile (bei uebungsblatt-2). Hab mich zwar hier auch schon umgeschaut, aber weder -lpthread noch -static -lptread oder -static -pthread oder nur -static oder nur -pthread zeigen Wirkung - es kommt immer die Meldung "undefined reference". Die normale Verzeichnisangabe /usr/local/lib/libgtest.a funktioniert hingegen einwandfrei.'''Ramin 4Mai10 21:56''' Ich habe meine Lösungen für die Übungsblätter hochgeladen (wie es auf den Übungsblättern steht, liegen die entsprechenden Dateien in den Ordnern uebungsblatt-1 und uebungsblatt-2) und mich dann bei Hudson eingeloggt. Allerdings war dort kein Job vorhanden. Was muss ich jetzt machen bzw. was habe ich falsch gemacht? '''Johanna 4Mai10 21:51''' @Madeleine: Sie haben das falsche ''.svn'' Verzeichnis gelöscht. Wenn Sie ''svn add uebungsblatt-2'' machen und es kommt die Fehlermeldung ''already under version control'' obwohl sie das Verzeichnis vorher noch gar nicht geadded haben, dann stand in dem Verzeichnis ''uebungsblatt-2'' ein ''.svn'' Ordner, den Sie hätten löschen müssen. Sie haben aber scheint's den in dem Verzeichnis eins oben drüber gelöscht. Lösung: behalten Sie das was Sie jetzt haben, checken Sie an anderer Stelle alles nochmal neu aus, kopieren Sie dann die neuen Sachen da hin und probieren es nochmal. '''Hannah 4Mai10 20:51''' @Peter: Die targets in Ihrem ''makefile'' heißen ''Build'', ''Test'' und ''Lint''. Sie sollten aber ''build'', ''test'' und ''lint'' heißen. '''Hannah 4Mai10 20:41''' Ich habe das gleiche Problem wie Dario. Ich habe vom Hudson eine Fehlermeldung bekommen und wollte nun eine geänderte Version hochladen, aber dabei bekomme ich immer die Fehlermeldung: {{{ svn add uebungsblatt-2 svn: '.' is not a working copy svn: Can't open file '.svn/entries': No such file or directory }}} Die .svn Datei habe ich gelöscht.Vielen Dank schon mal im Voraus. '''MadeleineP 4.Mai 19:45''' Also ich glaube der Hudson funktioniert noch nicht ganz fehlerfrei. Wenn ich bei mir meine Programme compiliere, funktioniert alles bestens. Hudson hingegen gibt mir diese Fehlermeldung: {{{ Gestartet durch Benutzer pb4 Checking out a fresh workspace because /var/lib/hudson-cplusplus-ss2010/jobs/pb4/workspace/pb4 doesn't exist Checking out http://ad-svn.informatik.uni-freiburg.de/teaching/cplusplus-ss2010/pb4 AU cpplint.py A erfahrungen.txt A punkte.txt A daten.txt A uebungsblatt-1 A uebungsblatt-1/SumOfDivisorMain.cpp A uebungsblatt-1/SumOfDivisor.cpp A uebungsblatt-1/SumOfDivisorTest.cpp A uebungsblatt-1/makefile A uebungsblatt-2 A uebungsblatt-2/SumOfDivisor.h A uebungsblatt-2/SumOfDivisorMain.cpp A uebungsblatt-2/SumOfDivisor.cpp A uebungsblatt-2/SumOfDivisorTest.cpp A uebungsblatt-2/makefile At revision 947 [workspace] $ /bin/sh -xe /tmp/hudson2281939866774158426.sh + SCRIPT=/var/lib/hudson-cplusplus-ss2010/scripts/buildExercice.py + python /var/lib/hudson-cplusplus-ss2010/scripts/buildExercice.py /var/lib/hudson-cplusplus-ss2010/jobs/pb4/workspace 1 pb4 sh: Syntax error: redirection unexpected make: Entering directory `/var/lib/hudson-cplusplus-ss2010/jobs/pb4/workspace/pb4/uebungsblatt-1' make: *** No rule to make target `lint'. Stop. make: Leaving directory `/var/lib/hudson-cplusplus-ss2010/jobs/pb4/workspace/pb4/uebungsblatt-1' Checking console output }}} '''Peter 4Mai10 19:01''' @Regina, Frage 2: Nachdem Sie Ihren Kommentar für das SVN eingegeben haben, müssen Sie speichern (das haben Sie anscheinen gemacht) und dann den Editor verlassen (das haben Sie anscheinend nicht gemacht). Wie das geht hängt vom Editor ab, bei ''Vim'' geht beides zusammen mit '':wq''. Falls Sie es nicht hinbekommen: gleich ist ja auch Sprechstunde in SR 00-028. '''Hannah 4Mai10 16:10''' @Regina: Wenn Sie ''multiple definition of SumOfDivisors(int) ...'' bekommen, dann heißt das, dass in Ihrer ''ProgrammMain.cpp'' der Code für diese Funktion steht. Wahrscheinlich haben Sie da noch ''#include SumOfDivisors.cpp'' oder so stehen (der Code wird included), es solle aber ''#include SumOfDivisors.h'' da stehen (nur die Deklaration wird included). '''Hannah 4Mai10 16:07''' Hallo, ich habe das 2.Programm ziemlich genau wie in der Vorlesung geschrieben, auch mit der header Datei. Wenn ich aber ''g++ -o ProgrammMain ProgrammMain.o Programm.o'' im makefile schreibe, bekomme ich die Fehlermeldung:''multiple definition of SumOfDivisors(int). First defined in ProgrammMain.cpp''. Wenn ich aber das Programm.o weglasse, also:''g++ -o ProgrammMain ProgrammMain.o'', funktioniert es plötzlich.Was könnte das bedeuten? Frage 2: ich habe versucht, etwas zu committen, und das sah auch alles ganz ok aus. Da kam der Bereich, wo ich meinen Kommentar eintragen sollte. Hab ich auch gemacht. Aber ab diesem Punkt wusste ich nicht mehr, was ich tun soll. Wie kann man das jetzt bestätigen? Unten waren erklärungen zu verschiedenen Tastaturbelegungen für speichern, etc. aber wenn ich versucht habe, das zu machen, ist nicht passiert...Was muss ich eingeben, um das dann endgültig zu bestätigen?'''Regina 3Mai10 16:14''' @Dario: kommen Sie heute zwischen 16 - 18 Uhr im SR 00-028 Gebäude 82 vorbei. Dort sitzt einer der Tutoren (Robin Schirrmeister) und der kann Ihnen sicher helfen. Wenn Sie ansonsten alles gemacht haben und alles funktioniert ist das committen ja der letzte Schritt, also keine Sorge. '''Hannah 4Mai10 11:58''' @Sebastian Also ich habe so gemacht, wie du mir gesagt hast aber es klappt noch nicht. Das kriege ich mit force {{{ svn add uebungsblatt-2 --force svn: Directory 'uebungsblatt-2/.svn' containing working copy admin area is missing }}} ohne kriege ich denselben Fehler wie vorher. '''Dario 4Mai10 11:51''' @Jan + alle: Der Hudson-Server steht laut den Verantwortlichen der Veranstaltung zur Zeit ''nicht'' zur Verfügung. Port 8080 für die C++-Crew ist erreichbar, und wir werden uns wahrscheinlich wieder auf Port 8082 einloggen können, wenn die Probleme mit dem System behoben sind. '''Dominik 04Mai10 11:30''' Weder SVN noch die Konsole sind Compiler.<<BR>> Das Problem hatte Hannah in der Vorlesung ja auch (sofern du dich analog verhalten und den ''uebungsblatt-2'' Ordner durch Kopieren des ersten erstellt hast). In dem Fall hilft es, wie in der Vorlesung den ''.svn'' Unterordner INNERHALB des ''uebungsblatt-2'' zu löschen. Alternativ sollte auch der Parameter ''--force'' (also ''svn add uebungsblatt-2 --force'') funktionieren. '''SebastianD 04Mai10 11:16''' Jetzt bin ich drin und sagt mir den Compiler: {{{ svn: warning: 'uebungsblatt-2' is already under version control }}} wenn ich svn list oder commit oder sonstiges mache funktioniert es auch nicht.'''Dario 4Mai10 11:11''' @Hannah: Sorry, mir war irgendwie nicht klar, dass das so negativ ankommen würde. Kommilitonen von mir schienen da auch recht überrascht.<<BR>> @Regina: Idealerweise weißt du, welches Programm du brauchst, um die Datei öffnen zu können. Willst du sie zum Beispiel editieren, dann tippst du ''<editor> <dateiname>'' ein.<<BR>> @Dario: Es scheint, als seist du nicht innerhalb deines Checkout-Verzeichnisses, wenn du versuchst, die Dateien hinzuzufügen. '''SebastianD 04Mai10 11:06''' Hallo, ich habe das erste Programm mit meinem Laptop geschrieben und mit dem habe mich bei svn angemeldet.<<BR>> Nun , habe ich das zweite Programm in der Pool geschrieben und kann nicht mehr es bei svn hochladen. {{{ svn add uebungsblatt-2 svn: '.' is not a working copy svn: Can't open file '.svn/entries': No such file or directory }}} Danke im Voraus '''Dario 4Mai10 10:45''' Egal ob ich im vpn bin oder nicht kriege ich immer: Firefox kann keine Verbindung zu dem Server unter stromboli.informatik.uni-freiburg.de:8082 aufbauen. '''Jan O. 4Mai10 10:08''' @Martin: Steht in den Mails, wo sich die Projekte und damit der Hudson-Server befindet. '''Dominik 4Mai10 9:13''' In den 10000 Emails die ich von Hudson gekriegt habe steht oben jeweils ein Link, auf den Port 8082, der ist aber nicht erreichbar. Auch vom vpn netz aus nicht. Was allerdings geht ist Port 8080, dort finde ich allerdings nur andere Projekte. '''Jan O. 4Mai10 08:20''' Wie ist jetzt eigentlich der Link zu Hudson? Ich habe das nirgendwo gefunden. '''Martin 3Mai10 21.26''' @Tim: Ohne die ''-c'' Option erwartet der Compiler ein Progamm mit einer ''main'' Funktion. Schauen Sie sich das Makefile aus der Vorlesung noch einmal ganz genau an, und schauen Sie bei welchen Dateien da ''g++ -c'' steht und bei welchen ''g++'' ohne die ''-c'' Option. '''Hannah 3Mai10 19:08''' @Regina: Bei dem ''g++'' Kommando welches die ''.cpp'' Datei von dem Test kompiliert ein ''-I/x/y/z'' hinzufügen, wobei ''/x/y/z'' der Pfad sein sollte, in dem sich der ''gtest'' Ordner befindet. Die Option ''-I'' sagt dem Compiler einfach wo er noch nachgucken soll bei einem ''#include'' statement. '''Hannah 3Mai10 19:05''' Hallo, ich habe ebenfalls ein Problem mit meinem Compiler. Er spuckt mir folgende Fehlermeldung aus: {{{ systeme1@systeme1-desktop:~/Dokumente/cpp/cpp/SumOgDigits$ g++ -o SumOfDigits SumOfDigits.cpp /usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crt1.o: In function `_start': /build/buildd/eglibc-2.10.1/csu/../sysdeps/i386/elf/start.S:115: undefined reference to `main' collect2: ld returned 1 exit status }}} Eine Neuinstallation und ein Update haben haben nichts bewirkt, das waren meine Versuche zur Fehlerbehebung bisher. '''Tim I 03Mai10 15:36''' Hallo, ich schaffe es nicht, meine Test Datei zu kompilieren, und ich vermute, dass es daran liegt, dass mein gtest nicht im Standartverzeichnis ''/usr/local/...'' ist, sondern sich woanders befindet. Deshalb findet er es nicht, wenn ich ''#include <gtest/gtest.h>'' schreibe. Ich habe versucht, den ganzen Ordner in ''usr/local/'' zu verschieben, aber ich bekomme als Antwort immer nur ''Permission denied''. Was muss ich statt den Klammern wie bei ''<gtest/gtest.h>'' schreiben, um den konkreten Pfad angeben zu können? Frage 2: Wie kann ich über die Konsole eine Datei öffnen? ''./ [Datei]'' funktioniert bei mir nicht. '''Regina 03Mai10 10:03''' @Aile + Alle: Ja, wie in der [[attachment:ProgrammierenCplusplusSS2010/vorlesung-2.pdf|2. Vorlesung]] mitgeteilt, sitzt am Dienstag von 16 - 18 einer der Tutoren (Robin Schirrmeister) im SR 00-028 in Gebäude 82 (TF-Pool). Mir ist bewusst, dass auch ein Montag-Termin gut wäre, aber dort sind alle TF-Pool Räume ausgebucht. '''Hannah 3Mai10 10:02''' Gibt es heute oder morgen noch die Möglichkeit einen Tutor zu treffen? '''Aile 03.Mai10 07:55''' @Peter: Du solltest dich beim ''add''en in einem Verzeichnis befinden, das unter ''version control'' steht. Also im ''checkout''-Verzeichnis, oder einem seiner Unterverzeichnisse – je nachdem, weche du schon ge''add''ed hast. '''Pat 02Mai10 20:11''' Wenn ich ein Übungsblatt mit SVN adden möchte, kommt die Fehlermeldung:"svn: ».« ist keine Arbeitskopie". Kann mir jmd. helfen? '''Peter 2Mai10 18:36''' @Hannah Danke :) funktioniert! @Sven: Wenn der Konflikt alt ist, und Sie da jetzt nur saubere Dateien hinkopiert haben (ohne ''conflict'' Markierungen, siehe meine Erklärungen dazu auf der [[ProgrammierenCplusplusSS2010/SVN|SVN]] Seite), dann sollte ''svn resolved uebungsblatt-1'' das Problem lösen. '''Hannah 2Mai10 14:44''' Vielen Dank :), soweit funktioniert es. svn add gibt keine fehler mehr und markiert alles mit A. Sobald ich aber commit mache gibt er mir die Nachricht {{{ svn: Übertragen schlug fehl (Details folgen): svn: Übertragung abgebrochen: »/home/sven/sg179/uebungsblatt-1« bleibt im Konflikt }}} '''Sven 2Mai10 14:15''' @Hannah: Besten Dank für die Erklärungen. Durch cleanup konnte ich es nun hochladen. '''JonathanN 2Mai10 14:15''' @Sven: Ich habe gerade einmal nachgeschaut und es scheint, dass Sie das Verzeichnis nicht nur lokal sondern auch auf dem repository gelöscht haben (mit ''svn rm''). Mit ''svn log'' bekommen Sie eine Historie Ihrer Einträge. Daraus ist bei Ihnen nicht deutlich ersichtlich, wann Sie das Verzeichnis gelöscht haben (deswegen sind die Log Einträge so wichtig!). Man sieht aber, dass Sie bei Version 136 das ''uebungsblatt-1'' hochgeladen haben. Wenn Sie dann ''svn update -r 136'' machen, bekommen Sie diese Version wieder. Genauer gesagt ist Ihre Arbeitskopie dann in dem Zustand in dem Sie zur Version 136 war, insbesondere ohne Übungsblatt 2. Kopieren Sie dann das ''uebungsblatt-1'' Verzeichnis irgendwo hin und machen Sie dann ''svn update -r HEAD'', dann haben Sie wieder Ihre neueste Version. Kopieren Sie dann Ihr ''uebungsblatt-1'' dorthin (aber löschen Sie vorher das Unterverzeichnis ''.svn'' in ''uebungsblatt-1'') und machen Sie nochmal ''svn add uebungsblatt-1'' gefolgt von ''svn commit uebungsblatt-1''. '''Hannah 2Mai10 13:47''' Hey, habe ein kleines Problem mit SVN. Habe das 2. Übungsblatt hochgeladen und aus irgendwelchen Gründen habe ich das erste gelöscht. Jetzt wollte ich das erste Übungsblatt wieder hochladen aber irgendwie sagt er mir jetzt {{{ "svn: Übertragen schlug fehl (Details folgen): svn: Verzeichnis »uebungsblatt-1« ist veraltet svn: »/teaching/cplusplus-ss2010/!svn/wrk/c5388c6f-7872-4457-bc9c-b86c1145fd96/sg179/uebungsblatt-1« Pfad nicht gefunden" }}} Probiers schon seit einer Stunde und komme leider nicht weiter.Desweitern hab ich beim checkout den status C bei dem entsprechenden Ordner, es kommt die Meldung "svn: Kann »/home/sven/sg179/uebungsblatt-1« nicht sperren". // Sven 2.Mai 13:30 @Jonathan: ''L'' kannte ich bisher auch noch nicht. Man bekommt eine Erklärung aller Symbole mit ''svn status --help'' (überhaupt bekommt man Erklärung zu einen svn Kommando mit ''svn <command> --help'' und eine Liste aller verfügbaren Kommandos mit ''svn help''). Da steht, dass es etwas mit locking zu tun hat, was genau ist zum Beispiel [[http://svnbook.red-bean.com/en/1.2/svn.advanced.locking.html|hier]] genauer erklärt. Es tritt wohl dann auf wenn man zwei Arbeitskopien hat und die eine gerade auf das repository zugreift, dann ist die andere für die Zeit ''locked''. Wenn das bestehen bleibt, hat sich mit der einen Arbeitskopie wahrscheinlich irgendwas aufgehängt. Für den Fall gibt es dann das Kommando ''svn cleanup'', auch auf der gerade verlinkten Seite beschrieben. Sagen Sie Bescheid, ob das geholfen hat. '''Hannah 2Mai10 13:14''' Hallo, bei svn status , sind mir A, M, ? und in zwischenzeit auch D bekannt nur was Bitte bedeutet L? '''JonathanN 2Mai10 12:43''' @Hannah + Sebastian + Alex: Danke für die Hilfe. Jetzt hat das Löschen geklappt. Ich wusste nicht, dass man nach dem eigentlichen Löschen mit svn delete noch einmal svn commit machen muss, für mich ist das alles noch recht neu. '''Martin 2Mai10 10:15''' @Alex + Alle: Ja, die ersten beiden Übungsblätter werden nach dem Abgabetermin am Mittwoch korrigiert und Sie bekommen dann sowohl Kommentare als auch Ihre Punkte über das SVN mitgeteilt. '''Hannah 1Mai10 23:44''' @Sebastian: Ich kann Ihren Ärger verstehen, aber bitte bemühen Sie sich doch auch bei Problemen um einen konstruktiven sachlichen Ton. Wir sind unsererseits bemüht, das Problem in den Griff zu bekommen. '''Hannah 1Mai10 23:34''' @Martin: Wenn man eine Datei ''xyz'' mit ''svn add xyz'' hinzugefügt hat aber noch nicht committed, kann man das mit ''svn revert xyz'' wieder rückgängig machen. Wenn man eine Datei ''xyz'' aus dem repository löschen will, kann man das mit ''svn rm xyz'' machen und danach ''svn commit xyz''. Achtung: es wird dann auch die lokale Arbeitskopie dieser Datei gelöscht, wenn einem an der noch was liegt, muss man die vorher sichern = irgendwo hinkopieren. '''Hannah 1May10 22:29''' Nachdem das Wiki wieder erreichbar ist, wollte ich nur kurz anmerken, dass mein Thunderbird jetzt bast@informatik.uni-freiburg.de in den Spam-Ordner verschiebt. Ich fand das nämlich nicht besonders witzig, dass bei mir exakt alle zwei Minuten wegen einer neuen Email geschrieen wurde, weil das Buildsystem keine Verbindung zum Repository herstellen konnte.<<BR>> @Martin: Ich bin nicht sicher, ob ich die Frage richtig verstehe (und wie gut du dich mit SVN auskennst). Ich hab's schon erlebt, dass eine Datei erst beim Commit gelöscht wurde. Wenn du ''svn status'' eingibst und links neben der Datei ein "D" steht, dann würde ich alles als in Ordnung bezeichnen. '''SebastianD 01May10 22:16''' @Alex: Ohne es genau zu wissen, gehe ich davon aus, dass die beiden Übungsblätter ab Mittwoch, nach dem Abgabetermin, korrigiert werden und die Punkte dann in die punkte.txt eingetragen werden. @Martin: Hast du nach dem svn delete ein svn commit ausgeführt? Die Änderungen werden erstmal nur lokal in deiner Workingcopy gespeichert, erst nach dem Commit werden die Dateien, die du "geaddet", "deleted" oder "modified" hast, im SVN aktualisiert. '''Ina 1Mai10 12:17 ''' Hey, hab mal ne Frage zum ersten Übungsblatt und zwar wurden die Blätter schon verbessert, oder werden die erst verbessert wenn alle abgegeben haben? Ich gehe mal davon aus, dass wir das Ergebnis dann in der Datei Punkte.txt finden, richtig? '''Alex 1Mai10 9:34''' Hallo, ich habe folgendes Problem: Ich habe eine Datei, die ich eigentlich nicht über SVN sichern wollte, hochgeladen und schaffe es nun nicht, sie wieder zu löschen. Mit 'svn delete DATEI' scheint das ja nicht zu klappen. Sie bleibt auch weiterhin geaddet. Was kann ich tun, um sie endgültig zu löschen? '''Martin 30Apr10 22:22''' @Dario + alle: Prima. Zur Erklärung: Ohne ''-static'' sucht g++ die dynamische gtest Bibliothek, und die heißt ''libgtest.so.0'' oder so ähnlich. Warum die auf den Pool-Rechnern nicht installiert ist recherchieren wir gerade noch. Mit ''-static'' such g++ die statische Bibliothek, und die heißt ''libgtest.a'' und die ist offenbar vorhanden. Den Unterschied zwischen statischer und dynamischer Bibliothek hatte ich kurz in der Vorlesung erklärt. '''Hannah 30Apr10 12:25''' @Hannah Danke Es hat super geklappt! also ich habe nach dem lgtest so geschrieben: -lgtest -static -pthread und es hat funktioniert! Gruß '''Dario 30Apr10 12:17''' @Dario: Wenn das kommt hängen Sie mal nach dem ''-lgtest'' noch ''-static'' an, also so ''-lgtest -static'' und sagen Sie Bescheid ob es dann geht. '''Hannah 30Apr10 12:01''' Danke für die Antworten.Nun habe ich fast alles gemacht aber kriege noch ein Fehlermeldung: {{{ make test ./sumOfRealDivisorTest ./sumOfRealDivisorTest: error while loading shared libraries: libgtest.so.0: cannot open shared object file: No such file or directory make: *** [test] Error 127 }}} Also bei make build läuft alles glatt aber ich kann nicht mehr make test machen.weißt jemand warum? '''Dario 30Apr10 11:59''' @Dario. Die Mail haben alle erhalten, die die daten.txt ausgefüllt haben. Hatte beim Joberstellen ausversehen einen kleinen Fehler gemacht, sodass jeder Build fehlschlug. Und Hudson ist dementsprechend eingestellt, dass, wenn ein Build fehlschlägt (das heißt ''make lint build test'' läuft nicht fehlerfrei durch oder eben das Skript, was im Prinzip genau das aufruft, ist falsch (dafür konntet ihr aber nichts)), ihr eine Mail erhaltet. Habe die Jobs nocheinmal neu und korrekt erstellt, weswegen ihr nun von dem fehlgeschlagenen Build auch nichts mehr seht. Also: die Mail einfach ignorieren ;) Falls sich im Übrigen jemand wundert, dass er keinen Job hat: das liegt daran, dass ihr die daten.txt noch nicht ausgefüllt habt (zumindest nicht zu dem Zeitpunkt als ich das Repos ausgecheckt habe). Ich werde das aber die Tage nochmal aktualisieren, in der Hoffnung das hat bis dahin jeder getan. ;) '''Ina 30Apr10 11:20''' @Dario, diese Email kommt vom Hudson Build-System. Läuft bei dir make lint einwandfrei durch? Bei mir kam dieser Fehler nur, solange lint sich beschwerte, dass ich sscanf benutze. (also bei einem lint-fehler) '''TimL 30Apr10 11:05''' Oberster Eintrag unter "Mitteilungen". '''SebastianD 30Apr10 10:31''' Hallo , ich habe ein mail bekommen mit so ein Text: {{{ File "/var/lib/hudson-cplusplus-ss2010/scripts/buildExercice.py", line 97, in <module> . main(sys.argv) . File "/var/lib/hudson-cplusplus-ss2010/scripts/buildExercice.py", line 83, in main . uebungsblattnumber = int(argv[2]) ValueError: invalid literal for int() with base 10: '$' Checking console output }}} Ich habe bereits make build test und link gemacht und alles klappt super. Ich kapiere noch nicht wo der Fehler ist. Gruß '''Dario 30Apr 10:00''' So, ich dachte, damit alle eine praktische und wichtige Funktion von Kommentaren sehen, verbinde ich das mal mit OffTopic. Zur Vorgeschichte: Es gibt leider sehr viele Laptophersteller die ihren BIOS ab Werk mit Supervisorpw versehen, die uns Infokinder dann stören wenn wir die Bootreih'nfolge ändern wollen um zB. das booten vom USB-Stick zu testen. Nun habe ich nach längerem suchen feststellen müssen, die Lösung war trivial dank der lieben Programmierer des BIOS-Updaters. {{{ [Bios_Version_Check] flag=1 ;This flag is the switch of checking Bios Version. When flag is 1, utility will ;check Bios Version. If rom file Version is older than Bios, utility will display warnning ;message and close application. When flag is 0, utility won't check rom file version. [ForceFlash] ALL=0 BB_PEI=0 CPU_Microcode=0 Variable=0 DXE=0 EC=0 Password=0 OEM_NVS=0 Logo=0 Type#01=1 Type#02=1 Type#09=0 Type#08=0 ;ALL 1 -> Flash all ROM part. 0 -> Resverd all protect areas. ;BB_PEI, CPU_Microcode, Variable... ;1 -> Force flash these area if BIOS report them are protected areas. ;0 -> Protect these area if BIOS report them are protected areas. }}} Ihr seht also, Kommentare sind wichtig '''Fry 29Apr10 23:03''' @Tim: Danke für die Antwort. Ich habe das gerade ausprobiert, und es funktioniert leider nicht, wenn die ''xorg.conf'' vorher leer war. Da gibt es dann Fehler von Ubuntu. '''Dominik 29Apr 16:00''' Hi Martin: Um die auflösung zu ändern, musst du als root die Datei ''/etc/X11/xorg.conf'' bearbeiten. Sollte diese bereits vorhanden sein, erstelle bitte vorher mit ''sudo cp /etc/X11/xorg.conf /etc/X11.xorg.conf''.old eine Sicherungskopie. Ist die datei nicht vorhanden, erstelle sie mit ''sudo nano /etc/X11/xorg.conf'' und füge folgende Inhalte ein: {{{ Section "Screen" SubSection "Display" Depth 24 Modes "1440x900" EndSubSection EndSection }}} Sollte die Datei bereits existiert haben, dann suche (in nano mit STRG+W) nach der Section "Screen", und bearbeite/erstelle die SubSection "Display" entsprechend. Sollten in "Display" bereits mehrere Auflösungen stehen, trage bitte die gewünschte Auflösung links neben den anderen ein. Speichere deine Änderungen mit STRG+X ab '''TimLechler 29Apr10 12:48''' @Martin: Diesen "remix" habe ich mir schon einmal angesehen. Für mich völlig ungeeignet, da es wie das Linux für die ersten Asus EEE-Netbooks eine GUI für Programmstarts anzeigt, welche die Bedienung von Ubuntu imo einschränkt. Wie die ''xorg.conf'' dort aussah weis ich nicht mehr. Also immer noch die Bitte an alle, falls jemand das schon weis, oder kurzfristig hinbekommt, Netbook-Auslösung wie 1200x800 oder 1024x600 einzustellen, dann bitte mitteilen. '''Dominik 29Apr10 11:25 ''' @Dominik: Für Netbooks gibt es eauch einen extra "Ubuntu Netbook Remix" zum Beispiel hier: [[http://www.ubuntu.com/getubuntu/download-netbook|Ubuntu Netbook Remix 9.10]]. Ab morgen dürfte es die neue Version 10.4 geben. Falls du das schon benutzt, ignorier' diesen Text einfach. '''Martin S. 29Apr10 11:00''' Die Auflösung in Ubuntu auf Netbooks ist auch bei mir noch ein kleines Ärgernis. Das soll über die ''xorg.conf'' gehen, dass man dort eine ''custom resolution'' einträgt. Wie genau weis ich aber auch nicht. Wer Ahnung hat, kann ja hier ein paar config-Zeilen posten. '''Dominik 29Apr10 10:50''' @Martin + Alle: Ja, sorry, hatte ich gestern vergessen, sie sind jetzt oben verlinkt (als ZIP Archiv). '''Hannah 29Apr10 10:43''' Werden die Beispielprogramme aus der 2. Vorlesung auch noch ins Wiki gestellt? '''Martin S. 29Apr10 10:03''' Eine Frage zur Bildschirmauflösung in Ubuntu. Ich hätte gerne für meinen Laptop 1200x800, Ubuntu bietet mir aber nur verschieden 4:3 oder 16:9 Varianten an und es werden Teile abgeschnitten, was recht unpraktisch ist. Kann mir da jemand helfen? '''Martin 28Apr10 19:28''' == Fragen und Kommentare zur 1. Vorlesung / zum 1. Übungsblatt (die neueste Frage zuoberst) == @Jonathan + alle: Ja, dem möchte ich mich noch einmal ausdrücklich anschließen. Das Abonnieren einer Wiki-Seite ist eine feine Sache, aber nur wenn man auch nur dann eine Benachrichtigung bekommt, wenn sich etwas wirklich Substantielles an der Seite geändert hat (neue Frage, neue Antwort, neue Mitteilung, etc.). Bei unwesentlichen Änderungen / Korrekturen bitte immer das Häcken in die Box "Triviale Änderung / Trivial change" oben über dem Textfeld setzen. @Jonathan: Keine Ahnung, warum die Benachrichtigungsmails bei Ihnen als Phishing-Versuche gekennzeichnet werden, bei mir (Thunderbird mit Standardeinstellungen) passiert das nicht. Mag sein, dass es an irgendwelchen unglücklichen Stichworten liegt, weil u.a. auf der Basis treffen die Mailprogramme ja solche Entscheidungen. Klassisches Beispiel: Schicken Sie mal eine Mail mit dem Wort ''Testosteron'' im Text an eine E-Mail Adresse @informatik.uni-freiburg.de (z.B. Ihre eigene). Die wird dann als Virus identifiziert und nicht durchgelassen, obwohl es offensichtlich keine Virus-Mail ist. Wenn Sie dann ''T*estosteron'' oder sowas schreiben geht es. '''Hannah 26Apr10 14:13''' @Alle : Ich habe lange versucht mich zubeherrschen, leider schaffe ich es jetzt nicht mehr, ich würde euch freundlichst bitten gebrauch von der Möglichkeit "Triviale Änderung"zu machen, denn jeder der die Seite(n) abonniert hat wird es euch danken, denn sorry aber es ist einfach lästig ne mail zu bekommen, wenn jemand nur ein Tippfehler verbessert, was öfters nur ein Zeichen ist, und dafür dann jeder die Seite abonniert hat ne mail deswegen in seinem Posteingang findet. Dann werden bei mir ein Teil von diesen "Benachrichtigungsmails" als sogenannte "PishingVersuche" von meinem Mail Programm gekennzeichnet, liegt da der Fehler bei mir? Besten Dank im vorraus. '''JonathanN 26Apr10 13:38''' @Tina: In dem Seminarraum 00-010/14 gibt es keine Rechner, deswegen sollen Sie unbedingt Ihr eigenes Notebook mitbringen (in der Hoffnung, dass Sie eins haben, wenn nicht bitte bei Jens Hoffmann melden). '''Hannah 26Apr10 13:24''' Hallo, ich hatte für heute Nachmittag versucht, die VirtualBox und Ubuntu zum Laufen zu kriegen. Habe die VirtualBox installiert und das iso-image auf eine CD gebrannt (ich brenne das 'entpackte' iso, nicht die iso-Datei, wie wenn ich eine normale Daten CD brennen wollte, oder?) Wenn ich in der VirtualBox starte, kommt vo ubuntu das Fenster mit ausprobieren, ubuntu installieren, etc. aber sobald ich auf Installieren gehe, passiert gar nix mehr. Gibt s in dem Seminarraum eigentlich Rechner mit Linux? '''Tina 26Apr10 09:29''' @manpages: Die Ressource http://vulcano.informatik.uni-freiburg.de/teaching/cplusplus-ss2010/vorlesung-1.avianpages-dev ist im Moment out of order. Man begnuege sich vorerst mit einem sudo apt-get install manpages-dev. Auf diesen manpages finden Sie allerdings nur C-Funktionen, etwa 'man 3 printf' oder 'man atoi' ... (Zum Nachdenken: Ist C eine Teilmenge von C++ oder ist C++ eine Erweiterung zu C?) Ansonsten gibt es noch hier ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/ manpages, die Sie allerdings noch zu installieren haben. Vorerst am besten geeignet halte ich aber Onlinereferenzen wie diese hier: http://www.cppreference.com/wiki/start. Da kann man dann auch mal stoebern ohne genau zu wissen wonach man eigentlich sucht ;) '''JensHoffmann 26Apr10''' @Martin: Ein Verzeichnis oder eine Datei löscht man mit ''svn rm <file name>''. Wenn das nicht hilft, bitte auch morgen um 17:45 im SR 00-010/14 vorbeikommen (siehe Kommentar vorher), oder vorher bei Jens. '''Hannah 25Apr10 21:23''' @Alle: Wer noch Probleme mit dem SVN hat, sei es wegen seinem GNOME keyring (das hat nichts mit uns zu tun), oder warum auch immer, komme bitte morgen (Montag) um 17.45 Uhr mit seinem Laptop in den SR 00-010/14 im Gebäude 101 (da wo auch der Linux-Crash Kurs stattfindet) und wir schauen dann, dass wir das lösen. Alternativ vor 16 Uhr bei Jens Hoffmann vorbeischauen (schreibt ihm eine E-Mail wenn ihr sicher sein wollt dass er da ist), in Zimmer 02-027 in Gebäude 51 (unser Lehrstuhl). '''Hannah 25Apr10 21:29''' Ich kann die Manual Pages nicht runterladen. Wenn ich das eingebe was Jens am 24Apr10 um 11.05 Uhr reingesetzt hat kommt nach dem Lesen der Statusinformationen "E: Konnte Paket http: nicht finden". BenN 25Apr10 21:04 |
Line 33: | Line 315: |
@Alex: Also mit Ubuntu hab ich grad meine Probleme... Passwort mit dem ich anmelde und erfolgreich ''sudo -i'' ausführe geht __nicht__ für "password for 'login' GNOME-keyring". Keine Ahnung wieso. An meine Dateien komme ich aber mit ''sudo svn'' ... '''Dominik 25.04 15:09''' | @Alex: Also mit Ubuntu hab ich grad meine Probleme... Passwort mit dem ich anmelde und erfolgreich ''sudo -i'' ausführe geht __nicht__ für "password for 'login' GNOME-keyring". Keine Ahnung wieso. An meine Dateien komme ich aber mit ''sudo svn'' ... '''Dominik 25.04 15:09''' |
Line 39: | Line 321: |
@JensHoffmann: Ich habe zwar schon eine eMail geschrieben, aber hier vielleicht nochmal, falls ich nicht alleine mit dem Problem bin. Bei dem SVN-checkout Befehl auf eurem C++ Server wird mein Passwort nicht angenommen. Das vorherige Registrieren hat mit diesem passwd geklappt, aber dann geht es nicht mehr: ''(login GNOME-keyring)'' ''authorization failed: Could not authenticate to server: rejected Basic challenge'' login: debre Bitte mal prüfen, warum das nicht geht. '''Dominik 25.04. 13:32''' |
@JensHoffmann: Ich habe zwar schon eine eMail geschrieben, aber hier vielleicht nochmal, falls ich nicht alleine mit dem Problem bin. Bei dem SVN-checkout Befehl auf eurem C++ Server wird mein Passwort nicht angenommen. Das vorherige Registrieren hat mit diesem passwd geklappt, aber dann geht es nicht mehr: ''(login GNOME-keyring)'' ''authorization failed: Could not authenticate to server: rejected Basic challenge'' login: debre Bitte mal prüfen, warum das nicht geht. '''Dominik 25.04. 13:32''' |
Line 47: | Line 329: |
Morgen Luc, dass make sagt, dass das test-target "up to date" ist, kann daran liegen, dass make denkt, dass sich seit dem letzten vorgang nichts mehr geändert hat. Make ist üblicherweise zum erstellen grösserer Projekte gedacht, und unterstützt das wiederaufnehmen abgebrochener Kompiliervorgänge. Daher sucht make beim aufruf, ob die Datei bereits in übersetzter Form vorliegt. Versuche einmal folgendes: Füge ein target mit dem Namen "clean" hinzu. als Anweisung für dieses target wählst du: "rm *.o <dateiname der testbinary> <dateiname des fertigen programms>". Probiere anschliessend, make clean auszuführen, und danach make test. Eigentlich sollte es dann funktionieren '''TimLechler ''''''1272187934 UTC -1''' | Morgen Luc, dass make sagt, dass das test-target "up to date" ist, kann daran liegen, dass make denkt, dass sich seit dem letzten vorgang nichts mehr geändert hat. Make ist üblicherweise zum erstellen grösserer Projekte gedacht, und unterstützt das wiederaufnehmen abgebrochener Kompiliervorgänge. Daher sucht make beim aufruf, ob die Datei bereits in übersetzter Form vorliegt. Versuche einmal folgendes: Füge ein target mit dem Namen "clean" hinzu. als Anweisung für dieses target wählst du: "rm *.o <dateiname der testbinary> <dateiname des fertigen programms>". Probiere anschliessend, make clean auszuführen, und danach make test. Eigentlich sollte es dann funktionieren '''TimLechler ''''''1272187934 UTC -1''' |
Line 59: | Line 341: |
@Dario Versuche es mal mit dem "Trick" den man z.B. bei den Rechner im Pool machen muss, bzw. wie ich schon etwas weiter unten erwähnt habe auch bei der Ubuntu-VirtualBox-Version welche letztes Semester in Systeme I verteil wurde du musst den Zusatz von -pthread in der MakeFile hinzuschreiben. '''JonathanN 24Apr10 15:33''' | @Dario Versuche es mal mit dem "Trick" den man z.B. bei den Rechner im Pool machen muss, bzw. wie ich schon etwas weiter unten erwähnt habe auch bei der Ubuntu-VirtualBox-Version welche letztes Semester in Systeme I verteil wurde du musst den Zusatz von -pthread in der MakeFile hinzuschreiben. '''JonathanN 24Apr10 15:33''' |
Line 73: | Line 355: |
sudo apt-get install http://vulcano.informatik.uni-freiburg.de/teaching/cplusplus-ss2010/vorlesung-1.avianpages-dev '''JensHoffmann 24Apr10 11:05''' | sudo apt-get install http://vulcano.informatik.uni-freiburg.de/teaching/cplusplus-ss2010/vorlesung-1.avianpages-dev '''JensHoffmann 24Apr10 11:05''' |
Line 166: | Line 448: |
@Dario: Hallo Dario. Ich schlage dir zum Ausprobieren Ubuntu in einer Virtual Box vor. Die Virtual Box bekommst du hier: http://www.virtualbox.org/wiki/Downloads. Das neueste Ubuntu findest du z.B. hier: http://www.ubuntu.com/GetUbuntu/download. VBox installieren, Festplatte an Ubuntu angepasst erstellen, Ubuntu-iso-image einbinden und fertig. Es ist wirklich sehr einfach, einfach mal ausprobieren und bei Fragen noch einmal melden. '''Jens 22Apr10 14.57''' Hallo, ich habe noch nie im meinem Leben Linux benutzt und deshalb kenne mich gar nicht aus. Ich habe Windows Vista und wollte fragen was für ein Version von Linux drauf machen konnte. Ich habe mich schon bei der Linux-crash-gruppe eingetragen aber wollte schon einiges ausprobieren. Ich lade gerade eine Ubuntu Version herunter , weil sie mir für Anfänger empfohlen wurde.Konnte mir jemand einfach seiner Meinung dazu sagen? '''Dario 22Apr10 10:47''' |
@Dario: Hallo Dario. Ich schlage dir zum Ausprobieren Ubuntu in einer Virtual Box vor. Die Virtual Box bekommst du hier: http://www.virtualbox.org/wiki/Downloads. Das neueste Ubuntu findest du z.B. hier: http://www.ubuntu.com/GetUbuntu/download. VBox installieren, Festplatte an Ubuntu angepasst erstellen, Ubuntu-iso-image einbinden und fertig. Es ist wirklich sehr einfach, einfach mal ausprobieren und bei Fragen noch einmal melden. '''Jens 22Apr10 14.57''' Hallo, ich habe noch nie im meinem Leben Linux benutzt und deshalb kenne mich gar nicht aus. Ich habe Windows Vista und wollte fragen was für ein Version von Linux drauf machen konnte. Ich habe mich schon bei der Linux-crash-gruppe eingetragen aber wollte schon einiges ausprobieren. Ich lade gerade eine Ubuntu Version herunter , weil sie mir für Anfänger empfohlen wurde.Konnte mir jemand einfach seiner Meinung dazu sagen? '''Dario 22Apr10 10:47''' |
Line 176: | Line 458: |
---- /!\ '''Edit conflict - other version:''' ---- |
|
Line 183: | Line 461: |
---- /!\ '''Edit conflict - your version:''' ---- Hier einfach eine Frage hinschreiben und dann am Ende mit Name, Datum und Uhrzeit "unterschreiben" so wie in dem Beispiel hier (bitte jeder in demselben Format). '''Hannah 21Apr10 00:36''' ---- /!\ '''End of edit conflict''' ---- |
Willkommen zum Wiki der Vorlesung '''Programmieren in C++''' im Sommersemester 2010
Die Vorlesung wird gehalten von Prof. Dr. Hannah Bast. Die Tutoren sind: Jens Hoffmann, Axel Lehmann, Felix Ruzzoli, Oday Jubran, Robin Schirrmeister, Simon Skilevis, Tim Lechler, Yaser Öztürk.
Bitte hier klicken zum (einmaligen) Registrieren.
Die Folien von den einzelnen Vorlesungen als PDF: Vorlesung 1, Vorlesung 2.
Die Aufnahmen der Vorlesungen als AVI: Vorlesung 1, Vorlesung 2.
Die Übungsblätter als PDF: Übungsblatt 1, Übungsblatt 2.
Erklärungen zu den diversen "Systemen" die Sie benutzen sollen: SVN, Make, GTest, Lint, Editor.
Hier die vier Dateien aus der Vorlesung 1 in einem ZIP Archiv: SumOfDigits.Vorlesung1.zip
Hier die fünf Dateien aus der Vorlesung 2 in einem ZIP Archiv: SumOfDigits.Vorlesung2.zip
Mitteilungen
Hudson ist nun wieder in Betrieb. Wir haben aber das automatische Builden nach jeder Änderung im SVN erstmal deaktiviert, d.h. Sie müssen Ihre Builds selbst anstoßen (auf den Link Build now in der Liste links klicken). Es wird dann jeweils die aktuelle Version im SVN gebaut. Die URL lautet http://stromboli.informatik.uni-freiburg.de:8082, dort müssen Sie sich erst einloggen (mit ihrem RZ-Account und Passwort), dann in der Liste recht auf Ihren Build-Job klicken (der Job heißt so wie der Username von Ihrem RZ-Account) und dann kommen Sie zu der Seite, wo sie auf Build now klicken können. Sie kommen auch direkt auf die Seite mit http://stromboli.informatik.uni-freiburg.de:8082/jobs/USERNAME, wobei USERNAME der Username von Ihrem RZ-Account ist. Hannah 4Mai10 16:17
Es gab heute große Probleme mit dem Wiki, mit dem SVN und mit Hudson. Auf der Maschine auf der Wiki + SVN laufen (vulcano.informatik.uni-freiburg.de) sind die logs übergelaufen wodurch die Maschine praktisch eingefroren war. Da Hudson minütlich versucht auf diesen Rechner zuzugreifen wurden Unmengen von E-Mails mit Fehlermeldungen an Sie generiert, wir bitten dafür um Entschuldigung. Ich habe die Hudson-Instanzen jetzt erstmal abgeschaltet. SVN + Wiki sollten wieder funktionieren. Wir arbeiten an dem Problem und melden uns sobald Hudson wieder einsatzbereit ist. Hannah 1Mai10 22:35
Also, wie es aussieht funktioniert Hudson nun und einige haben auch schon angefangen es zu benutzen. Ich habe allerdings noch eine kleine Änderung vorgenommen: Makefiles dürfen nun sowohl "Makefile" als auch "makefile" heißen (aus diesem Grund kamen vorher einige nicht auf stabil). Noch eine Anmerkung: falls ihr eine "Build fehlgeschlagen"-Mail erhaltet, kann es sein, dass ihr, wenn ihr auf den obersten Link klickt eine Fehlermeldung erhaltet, das liegt dann daran, dass ihr noch nicht eingeloggt seid. Außerdem gibt es nun einen Fehler, wenn "make lint build test" nicht fehlerfrei durchläuft (hat bisher aufgrund der "2 Blätter auf einmal" nicht funktioniert, aber ist gefixt). Ina 30Apr10 20:17
Wir testen gerade noch unser Build-System (Hudson) und kann sein, dass Sie da ab und zu Meldungen vom System bekommen. Bitte einfach ignorieren, bis wir in einer neuen Mitteilung was anderes schreiben. Wir hoffen, dass wir es bis Freitag Abend so weit haben, dass Sie es benutzen können. Hannah 30Apr10 1:21
Für alle, bei denen das Kompilieren des Test-Programms mit diesem oder einem ähnlichen Fehler scheitert, mögen in ihrem Makefile die option -pthread hinzufügen. Auch für die, die im TF-Pool arbeiten möchten ist dies erforderlich. Die betreffende Zeile im Makefile sollte dann etwa so aussehen: g++ -o testgetSumOfRF testmain.cpp -lgtest -lpthread. TimL 1272446410 UTC -1
Ich werde heute im Anschluss an die Vorlesung (gegen 17.15 Uhr) eine Einführung in den Editor Vim geben. Bei Interesse bringen Sie möglichst Ihren Laptop mit einer Installation von Vim mit, damit Sie alles was ich sage gleich nachvollziehen können. Windows oder Linux oder Mac ist dafür nicht wichtig, da Vim auf allen der bekannten Betriebssyteme mit dem gleichen look&feel läuft, download über http://www.vim.org. Hannah 28Apr10 8:04
Da es nach wie vor Leute gibt, die mit grundlegenden Computerproblemen wie Netzwerk, Linux, etc. kämpfen, machen wir es jetzt so, dass Sie für das 1. + 2. Übungsblatt zusammen bis zum Mittwoch, den 5. Mai 16 Uhr Zeit haben. Nehmen Sie das aber bitte nicht zum Anlass jetzt eine Woche gar nichts zu machen, sondern versuchen Sie trotzdem das 1. Übungsblatt bis morgen (28. April) fertig zu machen und von der Verlängerung der Frist nur im Notfall Gebrauch zu machen. Hannah 27Apr10 15:02
Hier geht es zu den älteren Mitteilungen.
Fragen und Kommentare zur 2. Vorlesung / zum 2. Übungsblatt (und auch noch zum 1.)
@Ramin: Haben Sie auch die Kombination -lgtest -static ausprobiert? Damit müsste es eigentlich gehen. Das -static sagt ja nur, dass er grundsätzlich nach .a Dateien und nicht nach .so Dateien suchen soll. Den Namen der Bibliothek müssen Sie schon immer noch angeben (mit -lgtest eben). Hannah 4Mai10 22:13
@Johanna: Schreiben Sie bitte ein Mail mit dem Namen Ihres RZ-Accounts an Jens Hoffmann <jgk.hoffmann@googlemail.com>, er wird Ihnen helfen können. Hannah 4Mai10 22:11
Danke schön, jetzt hat alles wunderbar funktioniert. Madeleine 04Mai10 22:02
Hallo, ich habe ein Problem mit dem -lgtest "Anhängsel" in der Makefile (bei uebungsblatt-2). Hab mich zwar hier auch schon umgeschaut, aber weder -lpthread noch -static -lptread oder -static -pthread oder nur -static oder nur -pthread zeigen Wirkung - es kommt immer die Meldung "undefined reference". Die normale Verzeichnisangabe /usr/local/lib/libgtest.a funktioniert hingegen einwandfrei.Ramin 4Mai10 21:56
Ich habe meine Lösungen für die Übungsblätter hochgeladen (wie es auf den Übungsblättern steht, liegen die entsprechenden Dateien in den Ordnern uebungsblatt-1 und uebungsblatt-2) und mich dann bei Hudson eingeloggt. Allerdings war dort kein Job vorhanden. Was muss ich jetzt machen bzw. was habe ich falsch gemacht? Johanna 4Mai10 21:51
@Madeleine: Sie haben das falsche .svn Verzeichnis gelöscht. Wenn Sie svn add uebungsblatt-2 machen und es kommt die Fehlermeldung already under version control obwohl sie das Verzeichnis vorher noch gar nicht geadded haben, dann stand in dem Verzeichnis uebungsblatt-2 ein .svn Ordner, den Sie hätten löschen müssen. Sie haben aber scheint's den in dem Verzeichnis eins oben drüber gelöscht. Lösung: behalten Sie das was Sie jetzt haben, checken Sie an anderer Stelle alles nochmal neu aus, kopieren Sie dann die neuen Sachen da hin und probieren es nochmal. Hannah 4Mai10 20:51
@Peter: Die targets in Ihrem makefile heißen Build, Test und Lint. Sie sollten aber build, test und lint heißen. Hannah 4Mai10 20:41
Ich habe das gleiche Problem wie Dario. Ich habe vom Hudson eine Fehlermeldung bekommen und wollte nun eine geänderte Version hochladen, aber dabei bekomme ich immer die Fehlermeldung:
svn add uebungsblatt-2 svn: '.' is not a working copy svn: Can't open file '.svn/entries': No such file or directory
Die .svn Datei habe ich gelöscht.Vielen Dank schon mal im Voraus. MadeleineP 4.Mai 19:45
Also ich glaube der Hudson funktioniert noch nicht ganz fehlerfrei. Wenn ich bei mir meine Programme compiliere, funktioniert alles bestens. Hudson hingegen gibt mir diese Fehlermeldung:
Gestartet durch Benutzer pb4 Checking out a fresh workspace because /var/lib/hudson-cplusplus-ss2010/jobs/pb4/workspace/pb4 doesn't exist Checking out http://ad-svn.informatik.uni-freiburg.de/teaching/cplusplus-ss2010/pb4 AU cpplint.py A erfahrungen.txt A punkte.txt A daten.txt A uebungsblatt-1 A uebungsblatt-1/SumOfDivisorMain.cpp A uebungsblatt-1/SumOfDivisor.cpp A uebungsblatt-1/SumOfDivisorTest.cpp A uebungsblatt-1/makefile A uebungsblatt-2 A uebungsblatt-2/SumOfDivisor.h A uebungsblatt-2/SumOfDivisorMain.cpp A uebungsblatt-2/SumOfDivisor.cpp A uebungsblatt-2/SumOfDivisorTest.cpp A uebungsblatt-2/makefile At revision 947 [workspace] $ /bin/sh -xe /tmp/hudson2281939866774158426.sh + SCRIPT=/var/lib/hudson-cplusplus-ss2010/scripts/buildExercice.py + python /var/lib/hudson-cplusplus-ss2010/scripts/buildExercice.py /var/lib/hudson-cplusplus-ss2010/jobs/pb4/workspace 1 pb4 sh: Syntax error: redirection unexpected make: Entering directory `/var/lib/hudson-cplusplus-ss2010/jobs/pb4/workspace/pb4/uebungsblatt-1' make: *** No rule to make target `lint'. Stop. make: Leaving directory `/var/lib/hudson-cplusplus-ss2010/jobs/pb4/workspace/pb4/uebungsblatt-1' Checking console output
Peter 4Mai10 19:01
@Regina, Frage 2: Nachdem Sie Ihren Kommentar für das SVN eingegeben haben, müssen Sie speichern (das haben Sie anscheinen gemacht) und dann den Editor verlassen (das haben Sie anscheinend nicht gemacht). Wie das geht hängt vom Editor ab, bei Vim geht beides zusammen mit :wq. Falls Sie es nicht hinbekommen: gleich ist ja auch Sprechstunde in SR 00-028. Hannah 4Mai10 16:10
@Regina: Wenn Sie multiple definition of SumOfDivisors(int) ... bekommen, dann heißt das, dass in Ihrer ProgrammMain.cpp der Code für diese Funktion steht. Wahrscheinlich haben Sie da noch #include SumOfDivisors.cpp oder so stehen (der Code wird included), es solle aber #include SumOfDivisors.h da stehen (nur die Deklaration wird included). Hannah 4Mai10 16:07
Hallo, ich habe das 2.Programm ziemlich genau wie in der Vorlesung geschrieben, auch mit der header Datei. Wenn ich aber g++ -o ProgrammMain ProgrammMain.o Programm.o im makefile schreibe, bekomme ich die Fehlermeldung:multiple definition of SumOfDivisors(int). First defined in ProgrammMain.cpp. Wenn ich aber das Programm.o weglasse, also:g++ -o ProgrammMain ProgrammMain.o, funktioniert es plötzlich.Was könnte das bedeuten? Frage 2: ich habe versucht, etwas zu committen, und das sah auch alles ganz ok aus. Da kam der Bereich, wo ich meinen Kommentar eintragen sollte. Hab ich auch gemacht. Aber ab diesem Punkt wusste ich nicht mehr, was ich tun soll. Wie kann man das jetzt bestätigen? Unten waren erklärungen zu verschiedenen Tastaturbelegungen für speichern, etc. aber wenn ich versucht habe, das zu machen, ist nicht passiert...Was muss ich eingeben, um das dann endgültig zu bestätigen?Regina 3Mai10 16:14
@Dario: kommen Sie heute zwischen 16 - 18 Uhr im SR 00-028 Gebäude 82 vorbei. Dort sitzt einer der Tutoren (Robin Schirrmeister) und der kann Ihnen sicher helfen. Wenn Sie ansonsten alles gemacht haben und alles funktioniert ist das committen ja der letzte Schritt, also keine Sorge. Hannah 4Mai10 11:58
@Sebastian Also ich habe so gemacht, wie du mir gesagt hast aber es klappt noch nicht. Das kriege ich mit force
svn add uebungsblatt-2 --force svn: Directory 'uebungsblatt-2/.svn' containing working copy admin area is missing
ohne kriege ich denselben Fehler wie vorher. Dario 4Mai10 11:51
@Jan + alle: Der Hudson-Server steht laut den Verantwortlichen der Veranstaltung zur Zeit nicht zur Verfügung. Port 8080 für die C++-Crew ist erreichbar, und wir werden uns wahrscheinlich wieder auf Port 8082 einloggen können, wenn die Probleme mit dem System behoben sind. Dominik 04Mai10 11:30
Weder SVN noch die Konsole sind Compiler.
Das Problem hatte Hannah in der Vorlesung ja auch (sofern du dich analog verhalten und den uebungsblatt-2 Ordner durch Kopieren des ersten erstellt hast). In dem Fall hilft es, wie in der Vorlesung den .svn Unterordner INNERHALB des uebungsblatt-2 zu löschen. Alternativ sollte auch der Parameter --force (also svn add uebungsblatt-2 --force) funktionieren. SebastianD 04Mai10 11:16
Jetzt bin ich drin und sagt mir den Compiler:
svn: warning: 'uebungsblatt-2' is already under version control
wenn ich svn list oder commit oder sonstiges mache funktioniert es auch nicht.Dario 4Mai10 11:11
@Hannah: Sorry, mir war irgendwie nicht klar, dass das so negativ ankommen würde. Kommilitonen von mir schienen da auch recht überrascht.
@Regina: Idealerweise weißt du, welches Programm du brauchst, um die Datei öffnen zu können. Willst du sie zum Beispiel editieren, dann tippst du <editor> <dateiname> ein.
@Dario: Es scheint, als seist du nicht innerhalb deines Checkout-Verzeichnisses, wenn du versuchst, die Dateien hinzuzufügen. SebastianD 04Mai10 11:06
Hallo, ich habe das erste Programm mit meinem Laptop geschrieben und mit dem habe mich bei svn angemeldet.
Nun , habe ich das zweite Programm in der Pool geschrieben und kann nicht mehr es bei svn hochladen.
svn add uebungsblatt-2 svn: '.' is not a working copy svn: Can't open file '.svn/entries': No such file or directory
Danke im Voraus Dario 4Mai10 10:45
Egal ob ich im vpn bin oder nicht kriege ich immer: Firefox kann keine Verbindung zu dem Server unter stromboli.informatik.uni-freiburg.de:8082 aufbauen. Jan O. 4Mai10 10:08
@Martin: Steht in den Mails, wo sich die Projekte und damit der Hudson-Server befindet. Dominik 4Mai10 9:13
In den 10000 Emails die ich von Hudson gekriegt habe steht oben jeweils ein Link, auf den Port 8082, der ist aber nicht erreichbar. Auch vom vpn netz aus nicht. Was allerdings geht ist Port 8080, dort finde ich allerdings nur andere Projekte. Jan O. 4Mai10 08:20
Wie ist jetzt eigentlich der Link zu Hudson? Ich habe das nirgendwo gefunden. Martin 3Mai10 21.26
@Tim: Ohne die -c Option erwartet der Compiler ein Progamm mit einer main Funktion. Schauen Sie sich das Makefile aus der Vorlesung noch einmal ganz genau an, und schauen Sie bei welchen Dateien da g++ -c steht und bei welchen g++ ohne die -c Option. Hannah 3Mai10 19:08
@Regina: Bei dem g++ Kommando welches die .cpp Datei von dem Test kompiliert ein -I/x/y/z hinzufügen, wobei /x/y/z der Pfad sein sollte, in dem sich der gtest Ordner befindet. Die Option -I sagt dem Compiler einfach wo er noch nachgucken soll bei einem #include statement. Hannah 3Mai10 19:05
Hallo, ich habe ebenfalls ein Problem mit meinem Compiler. Er spuckt mir folgende Fehlermeldung aus:
systeme1@systeme1-desktop:~/Dokumente/cpp/cpp/SumOgDigits$ g++ -o SumOfDigits SumOfDigits.cpp /usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crt1.o: In function `_start': /build/buildd/eglibc-2.10.1/csu/../sysdeps/i386/elf/start.S:115: undefined reference to `main' collect2: ld returned 1 exit status
Eine Neuinstallation und ein Update haben haben nichts bewirkt, das waren meine Versuche zur Fehlerbehebung bisher. Tim I 03Mai10 15:36
Hallo, ich schaffe es nicht, meine Test Datei zu kompilieren, und ich vermute, dass es daran liegt, dass mein gtest nicht im Standartverzeichnis /usr/local/... ist, sondern sich woanders befindet. Deshalb findet er es nicht, wenn ich #include <gtest/gtest.h> schreibe. Ich habe versucht, den ganzen Ordner in usr/local/ zu verschieben, aber ich bekomme als Antwort immer nur Permission denied. Was muss ich statt den Klammern wie bei <gtest/gtest.h> schreiben, um den konkreten Pfad angeben zu können? Frage 2: Wie kann ich über die Konsole eine Datei öffnen? ./ [Datei] funktioniert bei mir nicht. Regina 03Mai10 10:03
@Aile + Alle: Ja, wie in der 2. Vorlesung mitgeteilt, sitzt am Dienstag von 16 - 18 einer der Tutoren (Robin Schirrmeister) im SR 00-028 in Gebäude 82 (TF-Pool). Mir ist bewusst, dass auch ein Montag-Termin gut wäre, aber dort sind alle TF-Pool Räume ausgebucht. Hannah 3Mai10 10:02
Gibt es heute oder morgen noch die Möglichkeit einen Tutor zu treffen? Aile 03.Mai10 07:55
@Peter: Du solltest dich beim adden in einem Verzeichnis befinden, das unter version control steht. Also im checkout-Verzeichnis, oder einem seiner Unterverzeichnisse – je nachdem, weche du schon geadded hast. Pat 02Mai10 20:11
Wenn ich ein Übungsblatt mit SVN adden möchte, kommt die Fehlermeldung:"svn: ».« ist keine Arbeitskopie". Kann mir jmd. helfen? Peter 2Mai10 18:36
@Hannah Danke funktioniert!
@Sven: Wenn der Konflikt alt ist, und Sie da jetzt nur saubere Dateien hinkopiert haben (ohne conflict Markierungen, siehe meine Erklärungen dazu auf der SVN Seite), dann sollte svn resolved uebungsblatt-1 das Problem lösen. Hannah 2Mai10 14:44
Vielen Dank :), soweit funktioniert es. svn add gibt keine fehler mehr und markiert alles mit A. Sobald ich aber commit mache gibt er mir die Nachricht
svn: Übertragen schlug fehl (Details folgen): svn: Übertragung abgebrochen: »/home/sven/sg179/uebungsblatt-1« bleibt im Konflikt
Sven 2Mai10 14:15
@Hannah: Besten Dank für die Erklärungen. Durch cleanup konnte ich es nun hochladen. JonathanN 2Mai10 14:15
@Sven: Ich habe gerade einmal nachgeschaut und es scheint, dass Sie das Verzeichnis nicht nur lokal sondern auch auf dem repository gelöscht haben (mit svn rm). Mit svn log bekommen Sie eine Historie Ihrer Einträge. Daraus ist bei Ihnen nicht deutlich ersichtlich, wann Sie das Verzeichnis gelöscht haben (deswegen sind die Log Einträge so wichtig!). Man sieht aber, dass Sie bei Version 136 das uebungsblatt-1 hochgeladen haben. Wenn Sie dann svn update -r 136 machen, bekommen Sie diese Version wieder. Genauer gesagt ist Ihre Arbeitskopie dann in dem Zustand in dem Sie zur Version 136 war, insbesondere ohne Übungsblatt 2. Kopieren Sie dann das uebungsblatt-1 Verzeichnis irgendwo hin und machen Sie dann svn update -r HEAD, dann haben Sie wieder Ihre neueste Version. Kopieren Sie dann Ihr uebungsblatt-1 dorthin (aber löschen Sie vorher das Unterverzeichnis .svn in uebungsblatt-1) und machen Sie nochmal svn add uebungsblatt-1 gefolgt von svn commit uebungsblatt-1. Hannah 2Mai10 13:47
Hey, habe ein kleines Problem mit SVN. Habe das 2. Übungsblatt hochgeladen und aus irgendwelchen Gründen habe ich das erste gelöscht. Jetzt wollte ich das erste Übungsblatt wieder hochladen aber irgendwie sagt er mir jetzt
"svn: Übertragen schlug fehl (Details folgen): svn: Verzeichnis »uebungsblatt-1« ist veraltet svn: »/teaching/cplusplus-ss2010/!svn/wrk/c5388c6f-7872-4457-bc9c-b86c1145fd96/sg179/uebungsblatt-1« Pfad nicht gefunden"
Probiers schon seit einer Stunde und komme leider nicht weiter.Desweitern hab ich beim checkout den status C bei dem entsprechenden Ordner, es kommt die Meldung "svn: Kann »/home/sven/sg179/uebungsblatt-1« nicht sperren". // Sven 2.Mai 13:30
@Jonathan: L kannte ich bisher auch noch nicht. Man bekommt eine Erklärung aller Symbole mit svn status --help (überhaupt bekommt man Erklärung zu einen svn Kommando mit svn <command> --help und eine Liste aller verfügbaren Kommandos mit svn help). Da steht, dass es etwas mit locking zu tun hat, was genau ist zum Beispiel hier genauer erklärt. Es tritt wohl dann auf wenn man zwei Arbeitskopien hat und die eine gerade auf das repository zugreift, dann ist die andere für die Zeit locked. Wenn das bestehen bleibt, hat sich mit der einen Arbeitskopie wahrscheinlich irgendwas aufgehängt. Für den Fall gibt es dann das Kommando svn cleanup, auch auf der gerade verlinkten Seite beschrieben. Sagen Sie Bescheid, ob das geholfen hat. Hannah 2Mai10 13:14
Hallo, bei svn status , sind mir A, M, ? und in zwischenzeit auch D bekannt nur was Bitte bedeutet L? JonathanN 2Mai10 12:43
@Hannah + Sebastian + Alex: Danke für die Hilfe. Jetzt hat das Löschen geklappt. Ich wusste nicht, dass man nach dem eigentlichen Löschen mit svn delete noch einmal svn commit machen muss, für mich ist das alles noch recht neu. Martin 2Mai10 10:15
@Alex + Alle: Ja, die ersten beiden Übungsblätter werden nach dem Abgabetermin am Mittwoch korrigiert und Sie bekommen dann sowohl Kommentare als auch Ihre Punkte über das SVN mitgeteilt. Hannah 1Mai10 23:44
@Sebastian: Ich kann Ihren Ärger verstehen, aber bitte bemühen Sie sich doch auch bei Problemen um einen konstruktiven sachlichen Ton. Wir sind unsererseits bemüht, das Problem in den Griff zu bekommen. Hannah 1Mai10 23:34
@Martin: Wenn man eine Datei xyz mit svn add xyz hinzugefügt hat aber noch nicht committed, kann man das mit svn revert xyz wieder rückgängig machen. Wenn man eine Datei xyz aus dem repository löschen will, kann man das mit svn rm xyz machen und danach svn commit xyz. Achtung: es wird dann auch die lokale Arbeitskopie dieser Datei gelöscht, wenn einem an der noch was liegt, muss man die vorher sichern = irgendwo hinkopieren. Hannah 1May10 22:29
Nachdem das Wiki wieder erreichbar ist, wollte ich nur kurz anmerken, dass mein Thunderbird jetzt bast@informatik.uni-freiburg.de in den Spam-Ordner verschiebt. Ich fand das nämlich nicht besonders witzig, dass bei mir exakt alle zwei Minuten wegen einer neuen Email geschrieen wurde, weil das Buildsystem keine Verbindung zum Repository herstellen konnte.
@Martin: Ich bin nicht sicher, ob ich die Frage richtig verstehe (und wie gut du dich mit SVN auskennst). Ich hab's schon erlebt, dass eine Datei erst beim Commit gelöscht wurde. Wenn du svn status eingibst und links neben der Datei ein "D" steht, dann würde ich alles als in Ordnung bezeichnen. SebastianD 01May10 22:16
@Alex: Ohne es genau zu wissen, gehe ich davon aus, dass die beiden Übungsblätter ab Mittwoch, nach dem Abgabetermin, korrigiert werden und die Punkte dann in die punkte.txt eingetragen werden. @Martin: Hast du nach dem svn delete ein svn commit ausgeführt? Die Änderungen werden erstmal nur lokal in deiner Workingcopy gespeichert, erst nach dem Commit werden die Dateien, die du "geaddet", "deleted" oder "modified" hast, im SVN aktualisiert. Ina 1Mai10 12:17
Hey, hab mal ne Frage zum ersten Übungsblatt und zwar wurden die Blätter schon verbessert, oder werden die erst verbessert wenn alle abgegeben haben? Ich gehe mal davon aus, dass wir das Ergebnis dann in der Datei Punkte.txt finden, richtig? Alex 1Mai10 9:34
Hallo, ich habe folgendes Problem: Ich habe eine Datei, die ich eigentlich nicht über SVN sichern wollte, hochgeladen und schaffe es nun nicht, sie wieder zu löschen. Mit 'svn delete DATEI' scheint das ja nicht zu klappen. Sie bleibt auch weiterhin geaddet. Was kann ich tun, um sie endgültig zu löschen? Martin 30Apr10 22:22
@Dario + alle: Prima. Zur Erklärung: Ohne -static sucht g++ die dynamische gtest Bibliothek, und die heißt libgtest.so.0 oder so ähnlich. Warum die auf den Pool-Rechnern nicht installiert ist recherchieren wir gerade noch. Mit -static such g++ die statische Bibliothek, und die heißt libgtest.a und die ist offenbar vorhanden. Den Unterschied zwischen statischer und dynamischer Bibliothek hatte ich kurz in der Vorlesung erklärt. Hannah 30Apr10 12:25
@Hannah Danke Es hat super geklappt! also ich habe nach dem lgtest so geschrieben: -lgtest -static -pthread und es hat funktioniert! Gruß Dario 30Apr10 12:17
@Dario: Wenn das kommt hängen Sie mal nach dem -lgtest noch -static an, also so -lgtest -static und sagen Sie Bescheid ob es dann geht. Hannah 30Apr10 12:01
Danke für die Antworten.Nun habe ich fast alles gemacht aber kriege noch ein Fehlermeldung:
make test ./sumOfRealDivisorTest ./sumOfRealDivisorTest: error while loading shared libraries: libgtest.so.0: cannot open shared object file: No such file or directory make: *** [test] Error 127
Also bei make build läuft alles glatt aber ich kann nicht mehr make test machen.weißt jemand warum? Dario 30Apr10 11:59
@Dario. Die Mail haben alle erhalten, die die daten.txt ausgefüllt haben. Hatte beim Joberstellen ausversehen einen kleinen Fehler gemacht, sodass jeder Build fehlschlug. Und Hudson ist dementsprechend eingestellt, dass, wenn ein Build fehlschlägt (das heißt make lint build test läuft nicht fehlerfrei durch oder eben das Skript, was im Prinzip genau das aufruft, ist falsch (dafür konntet ihr aber nichts)), ihr eine Mail erhaltet. Habe die Jobs nocheinmal neu und korrekt erstellt, weswegen ihr nun von dem fehlgeschlagenen Build auch nichts mehr seht. Also: die Mail einfach ignorieren Falls sich im Übrigen jemand wundert, dass er keinen Job hat: das liegt daran, dass ihr die daten.txt noch nicht ausgefüllt habt (zumindest nicht zu dem Zeitpunkt als ich das Repos ausgecheckt habe). Ich werde das aber die Tage nochmal aktualisieren, in der Hoffnung das hat bis dahin jeder getan.
Ina 30Apr10 11:20
@Dario, diese Email kommt vom Hudson Build-System. Läuft bei dir make lint einwandfrei durch? Bei mir kam dieser Fehler nur, solange lint sich beschwerte, dass ich sscanf benutze. (also bei einem lint-fehler) TimL 30Apr10 11:05
Oberster Eintrag unter "Mitteilungen". SebastianD 30Apr10 10:31
Hallo , ich habe ein mail bekommen mit so ein Text:
File "/var/lib/hudson-cplusplus-ss2010/scripts/buildExercice.py", line 97, in <module> . main(sys.argv) . File "/var/lib/hudson-cplusplus-ss2010/scripts/buildExercice.py", line 83, in main . uebungsblattnumber = int(argv[2]) ValueError: invalid literal for int() with base 10: '$' Checking console output
Ich habe bereits make build test und link gemacht und alles klappt super. Ich kapiere noch nicht wo der Fehler ist. Gruß Dario 30Apr 10:00
So, ich dachte, damit alle eine praktische und wichtige Funktion von Kommentaren sehen, verbinde ich das mal mit OffTopic. Zur Vorgeschichte: Es gibt leider sehr viele Laptophersteller die ihren BIOS ab Werk mit Supervisorpw versehen, die uns Infokinder dann stören wenn wir die Bootreih'nfolge ändern wollen um zB. das booten vom USB-Stick zu testen. Nun habe ich nach längerem suchen feststellen müssen, die Lösung war trivial dank der lieben Programmierer des BIOS-Updaters.
[Bios_Version_Check] flag=1 ;This flag is the switch of checking Bios Version. When flag is 1, utility will ;check Bios Version. If rom file Version is older than Bios, utility will display warnning ;message and close application. When flag is 0, utility won't check rom file version. [ForceFlash] ALL=0 BB_PEI=0 CPU_Microcode=0 Variable=0 DXE=0 EC=0 Password=0 OEM_NVS=0 Logo=0 Type#01=1 Type#02=1 Type#09=0 Type#08=0 ;ALL 1 -> Flash all ROM part. 0 -> Resverd all protect areas. ;BB_PEI, CPU_Microcode, Variable... ;1 -> Force flash these area if BIOS report them are protected areas. ;0 -> Protect these area if BIOS report them are protected areas.
Ihr seht also, Kommentare sind wichtig Fry 29Apr10 23:03
@Tim: Danke für die Antwort. Ich habe das gerade ausprobiert, und es funktioniert leider nicht, wenn die xorg.conf vorher leer war. Da gibt es dann Fehler von Ubuntu. Dominik 29Apr 16:00
Hi Martin: Um die auflösung zu ändern, musst du als root die Datei /etc/X11/xorg.conf bearbeiten. Sollte diese bereits vorhanden sein, erstelle bitte vorher mit sudo cp /etc/X11/xorg.conf /etc/X11.xorg.conf.old eine Sicherungskopie. Ist die datei nicht vorhanden, erstelle sie mit sudo nano /etc/X11/xorg.conf und füge folgende Inhalte ein:
Section "Screen" SubSection "Display" Depth 24 Modes "1440x900" EndSubSection EndSection
Sollte die Datei bereits existiert haben, dann suche (in nano mit STRG+W) nach der Section "Screen", und bearbeite/erstelle die SubSection "Display" entsprechend. Sollten in "Display" bereits mehrere Auflösungen stehen, trage bitte die gewünschte Auflösung links neben den anderen ein. Speichere deine Änderungen mit STRG+X ab TimLechler 29Apr10 12:48
@Martin: Diesen "remix" habe ich mir schon einmal angesehen. Für mich völlig ungeeignet, da es wie das Linux für die ersten Asus EEE-Netbooks eine GUI für Programmstarts anzeigt, welche die Bedienung von Ubuntu imo einschränkt. Wie die xorg.conf dort aussah weis ich nicht mehr. Also immer noch die Bitte an alle, falls jemand das schon weis, oder kurzfristig hinbekommt, Netbook-Auslösung wie 1200x800 oder 1024x600 einzustellen, dann bitte mitteilen. Dominik 29Apr10 11:25
@Dominik: Für Netbooks gibt es eauch einen extra "Ubuntu Netbook Remix" zum Beispiel hier: Ubuntu Netbook Remix 9.10. Ab morgen dürfte es die neue Version 10.4 geben. Falls du das schon benutzt, ignorier' diesen Text einfach. Martin S. 29Apr10 11:00
Die Auflösung in Ubuntu auf Netbooks ist auch bei mir noch ein kleines Ärgernis. Das soll über die xorg.conf gehen, dass man dort eine custom resolution einträgt. Wie genau weis ich aber auch nicht. Wer Ahnung hat, kann ja hier ein paar config-Zeilen posten. Dominik 29Apr10 10:50
@Martin + Alle: Ja, sorry, hatte ich gestern vergessen, sie sind jetzt oben verlinkt (als ZIP Archiv). Hannah 29Apr10 10:43
Werden die Beispielprogramme aus der 2. Vorlesung auch noch ins Wiki gestellt? Martin S. 29Apr10 10:03
Eine Frage zur Bildschirmauflösung in Ubuntu. Ich hätte gerne für meinen Laptop 1200x800, Ubuntu bietet mir aber nur verschieden 4:3 oder 16:9 Varianten an und es werden Teile abgeschnitten, was recht unpraktisch ist. Kann mir da jemand helfen? Martin 28Apr10 19:28
Fragen und Kommentare zur 1. Vorlesung / zum 1. Übungsblatt (die neueste Frage zuoberst)
@Jonathan + alle: Ja, dem möchte ich mich noch einmal ausdrücklich anschließen. Das Abonnieren einer Wiki-Seite ist eine feine Sache, aber nur wenn man auch nur dann eine Benachrichtigung bekommt, wenn sich etwas wirklich Substantielles an der Seite geändert hat (neue Frage, neue Antwort, neue Mitteilung, etc.). Bei unwesentlichen Änderungen / Korrekturen bitte immer das Häcken in die Box "Triviale Änderung / Trivial change" oben über dem Textfeld setzen. @Jonathan: Keine Ahnung, warum die Benachrichtigungsmails bei Ihnen als Phishing-Versuche gekennzeichnet werden, bei mir (Thunderbird mit Standardeinstellungen) passiert das nicht. Mag sein, dass es an irgendwelchen unglücklichen Stichworten liegt, weil u.a. auf der Basis treffen die Mailprogramme ja solche Entscheidungen. Klassisches Beispiel: Schicken Sie mal eine Mail mit dem Wort Testosteron im Text an eine E-Mail Adresse @informatik.uni-freiburg.de (z.B. Ihre eigene). Die wird dann als Virus identifiziert und nicht durchgelassen, obwohl es offensichtlich keine Virus-Mail ist. Wenn Sie dann T*estosteron oder sowas schreiben geht es. Hannah 26Apr10 14:13
@Alle : Ich habe lange versucht mich zubeherrschen, leider schaffe ich es jetzt nicht mehr, ich würde euch freundlichst bitten gebrauch von der Möglichkeit "Triviale Änderung"zu machen, denn jeder der die Seite(n) abonniert hat wird es euch danken, denn sorry aber es ist einfach lästig ne mail zu bekommen, wenn jemand nur ein Tippfehler verbessert, was öfters nur ein Zeichen ist, und dafür dann jeder die Seite abonniert hat ne mail deswegen in seinem Posteingang findet. Dann werden bei mir ein Teil von diesen "Benachrichtigungsmails" als sogenannte "PishingVersuche" von meinem Mail Programm gekennzeichnet, liegt da der Fehler bei mir? Besten Dank im vorraus. JonathanN 26Apr10 13:38
@Tina: In dem Seminarraum 00-010/14 gibt es keine Rechner, deswegen sollen Sie unbedingt Ihr eigenes Notebook mitbringen (in der Hoffnung, dass Sie eins haben, wenn nicht bitte bei Jens Hoffmann melden). Hannah 26Apr10 13:24
Hallo, ich hatte für heute Nachmittag versucht, die VirtualBox und Ubuntu zum Laufen zu kriegen. Habe die VirtualBox installiert und das iso-image auf eine CD gebrannt (ich brenne das 'entpackte' iso, nicht die iso-Datei, wie wenn ich eine normale Daten CD brennen wollte, oder?) Wenn ich in der VirtualBox starte, kommt vo ubuntu das Fenster mit ausprobieren, ubuntu installieren, etc. aber sobald ich auf Installieren gehe, passiert gar nix mehr. Gibt s in dem Seminarraum eigentlich Rechner mit Linux? Tina 26Apr10 09:29
@manpages: Die Ressource http://vulcano.informatik.uni-freiburg.de/teaching/cplusplus-ss2010/vorlesung-1.avianpages-dev ist im Moment out of order. Man begnuege sich vorerst mit einem sudo apt-get install manpages-dev. Auf diesen manpages finden Sie allerdings nur C-Funktionen, etwa 'man 3 printf' oder 'man atoi' ... (Zum Nachdenken: Ist C eine Teilmenge von C++ oder ist C++ eine Erweiterung zu C?) Ansonsten gibt es noch hier ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/ manpages, die Sie allerdings noch zu installieren haben. Vorerst am besten geeignet halte ich aber Onlinereferenzen wie diese hier: http://www.cppreference.com/wiki/start. Da kann man dann auch mal stoebern ohne genau zu wissen wonach man eigentlich sucht JensHoffmann 26Apr10
@Martin: Ein Verzeichnis oder eine Datei löscht man mit svn rm <file name>. Wenn das nicht hilft, bitte auch morgen um 17:45 im SR 00-010/14 vorbeikommen (siehe Kommentar vorher), oder vorher bei Jens. Hannah 25Apr10 21:23
@Alle: Wer noch Probleme mit dem SVN hat, sei es wegen seinem GNOME keyring (das hat nichts mit uns zu tun), oder warum auch immer, komme bitte morgen (Montag) um 17.45 Uhr mit seinem Laptop in den SR 00-010/14 im Gebäude 101 (da wo auch der Linux-Crash Kurs stattfindet) und wir schauen dann, dass wir das lösen. Alternativ vor 16 Uhr bei Jens Hoffmann vorbeischauen (schreibt ihm eine E-Mail wenn ihr sicher sein wollt dass er da ist), in Zimmer 02-027 in Gebäude 51 (unser Lehrstuhl). Hannah 25Apr10 21:29
Ich kann die Manual Pages nicht runterladen. Wenn ich das eingebe was Jens am 24Apr10 um 11.05 Uhr reingesetzt hat kommt nach dem Lesen der Statusinformationen "E: Konnte Paket http: nicht finden". BenN 25Apr10 21:04
@Alle, die mehr über SVN wissen wollen: http://svnbook.red-bean.com/en/1.0/ Alex
@Alex: Also mit Ubuntu hab ich grad meine Probleme... Passwort mit dem ich anmelde und erfolgreich sudo -i ausführe geht nicht für "password for 'login' GNOME-keyring". Keine Ahnung wieso. An meine Dateien komme ich aber mit sudo svn ... Dominik 25.04 15:09
@Dominik: Das "GNOME-keyring"-PW ist dein lokales Kennwort! Es ist das gleiche, das du auch zum Einloggen ins System benutzt oder wenn du versuchst, etwas mit sudo zu installieren. Alex
Hi Dominik. Hast du schonmal probiert, dem svn-client das passwort direkt mitzugeben? dies geht mit der Option --password <deinpasswort>. MFG TimL 1272196678 UTC-1
@JensHoffmann: Ich habe zwar schon eine eMail geschrieben, aber hier vielleicht nochmal, falls ich nicht alleine mit dem Problem bin.
Bei dem SVN-checkout Befehl auf eurem C++ Server wird mein Passwort nicht angenommen. Das vorherige Registrieren hat mit diesem passwd geklappt, aber dann geht es nicht mehr: (login GNOME-keyring) authorization failed: Could not authenticate to server: rejected Basic challenge login: debre Bitte mal prüfen, warum das nicht geht. Dominik 25.04. 13:32
Mein rz-Account ist ms352. SVN erkennt die Änderung im Verzeichnis uebungsblatt-1 weiterhin nicht. Gibt es denn eine Möglichkeit ein Verzeichnis wieder von der Versionsüberwachung zu entfernen? Dann könnte ich es ja löschen und wieder neu hinzufügen und hoffen, dass es dann funktioniert. Martin 25Apr12:29
@Luc: Das liegt daran, dass du in dem Verzeichnis, wo dein Makefile liegt auch eine Datei mit dem Namen test hast, warum auch immer. Lösche die mal (oder benenne sie um), und dann geht make test wieder. Warum das so ist, erkläre ich in einer der nächsten Vorlesungen, das hat mit fortgeschritteneren Features on make zu tun. Hannah 25Apr10 12:27
Morgen Luc, dass make sagt, dass das test-target "up to date" ist, kann daran liegen, dass make denkt, dass sich seit dem letzten vorgang nichts mehr geändert hat. Make ist üblicherweise zum erstellen grösserer Projekte gedacht, und unterstützt das wiederaufnehmen abgebrochener Kompiliervorgänge. Daher sucht make beim aufruf, ob die Datei bereits in übersetzter Form vorliegt. Versuche einmal folgendes: Füge ein target mit dem Namen "clean" hinzu. als Anweisung für dieses target wählst du: "rm *.o <dateiname der testbinary> <dateiname des fertigen programms>". Probiere anschliessend, make clean auszuführen, und danach make test. Eigentlich sollte es dann funktionieren TimLechler 1272187934 UTC -1
So ich versuche das mit dem Test gerade, was auch funktioniert. Nur wenn ich das jetzt in die makefile schreibe und diese danach ausführe, gibt er mit folgende Antwort: "make: `test' is up to date.". Wenn ich nun aber in der makefile "test:" in "test1:" umändere und mit "make test1" ausführe, dann lässt er alle Tests durchlaufen. Woran kann das liegen? Luc 25Apr10 11:26
@Martin + alle: Bei Fragen die das SVN betreffen, bitte immer den username des RZ-accounts angeben, damit wir schauen können ob von unserer Seite alles in Ordnung ist. Hannah 24Apr10 23:38
Der Link auf die Aufnahme von der Vorlesung sollte jetzt wieder funktionieren. Wir hatten etwas an der Konfiguration unseres SVN geändert, und dadurch hatte sich der Pfad geändert, ich habe das jetzt korrigiert. Hannah 24Apr10 23:36
Svn sieht nicht, dass sich im Verzeichnis uebungsblatt-1 etwas geändert hat, obwohl ich das verzeichnis geadded habe. wenn ich svn diff eingebe erkennt er nur das erfahrungen.txt anders ist und lädt die datei mit svn commit auch hoch, lässt aber den ordner außer acht. hab' schon probiert den ordner zu löschen. fand' er nicht so gut und wollte dann gar nicht mehr, weil der ordner fehlte. Martin 24Apr10 22:37
@JonathanN Grandissimo!Danke fuer den Trick jetzt hat es geklappt und bin endlich mal fertig!Der Test war echt eine knifflige Sache!:D Dario 24Apr10 17:00
@Dario Versuche es mal mit dem "Trick" den man z.B. bei den Rechner im Pool machen muss, bzw. wie ich schon etwas weiter unten erwähnt habe auch bei der Ubuntu-VirtualBox-Version welche letztes Semester in Systeme I verteil wurde du musst den Zusatz von -pthread in der MakeFile hinzuschreiben. JonathanN 24Apr10 15:33
Hallo, ich habe gtest installiert aber ich kriege trotzdem sowas:
g++ -o sumOfRealDivisorTest sumOfRealDivisorTest.cpp /usr/local/lib/libgtest.a /usr/local/lib/libgtest.a(gtest-all.o): In function `testing::internal::ThreadLocal<testing::TestPartResultReporterInterface*>::CreateKey()': /home/dario/gtest-1.5.0/./include/gtest/internal/gtest-port.h:1139: undefined reference to `pthread_key_create' /usr/local/lib/libgtest.a(gtest-all.o): In function `testing::internal::ThreadLocal<std::vector<testing::internal::TraceInfo, std::allocator<testing::internal::TraceInfo> > >::CreateKey()': /home/dario/gtest-1.5.0/./include/gtest/internal/gtest-port.h:1139: undefined reference to `pthread_key_create'
ich kann nicht den Fehler finden. Dario 24Apr10 15:14
Auf den Rechnern der TF gibt's auch ein kleines Tutorial zu vim... einfach in der Konsole vimtutor eingeben. Christiane 24Apr10 15:10
Der Link zur Avi-Datei scheint defekt zu sein. Zumindest kann ich sie nicht herunterladen... JonasReinmuth 24Apr10 14:02
sudo apt-get install http://vulcano.informatik.uni-freiburg.de/teaching/cplusplus-ss2010/vorlesung-1.avianpages-dev JensHoffmann 24Apr10 11:05
welche pakete muss ich den installieren, damit ich in der konsole die manual pages für c++ befehle aufgerufen bekomme? wenn ich die Hilfeseiten aufrufen will bekomme ich nur folgendes:
martin@martin-laptop:~/Cplusplus/uebungsblatt-1$ man 3 exit No manual entry for exit in section 3 martin@martin-laptop:~/Cplusplus/uebungsblatt-1$ man exit No manual entry for exit
Martin 24Apr10 10:36
@Dario: Siehe Editor, da habe ich jetzt auch erklärt, wie man zwischen verschiedenen Teilen hin und her wechselt. Ich werde am Mittwoch eine kurze Einführung in Vim geben, bis dahin können Sie auf einfach einen anderen Editor benutzen. Es ist ja ganz egal mit welchem Editor Sie Ihre Dateien erzeugen und bearbeiten. Hannah 24Apr10 00:26
hi, ich benutze grad diese vim editor und habe vorhin den make file erzeugt.nun ist mein fenster in 2 teile gespaltet worden und kann nicht mehr auf die make-befehle zugreifen.ich bin wie auf der 45 min monitor der erste vorlesung. Was fuer ein befehl sollte ich verwenden? bsp esc : .. Dario 24Apr10 00:00
Ach, und wo wir gerade bei den perfekten Zahlen sind, die kann man übrigens wie folgt generieren. Und zwar ist für jedes n, für das 2n - 1 eine Primzahl ist (sogenannte Mersenne-Primzahl), die Zahl 2n-1 * (2n - 1) eine perfekte Zahl, d.h., die Summer ihrer echten Teiler ist die Zahl selber. Der Beweis ist gar nicht schwer (sogar Euklid konnte das schon), wer Überschuss hat kann sich ja mal dran probieren. Hannah 23Apr10 20:52
@Peter: Die echten Teiler sind alle positiven Teiler außer der Zahl selber. Nach der Definition hat die 1 keine echten Teiler, und die Summe ist also 0. Übrigens: würde man die 1 hier mitzählen, wäre die Summe 1 und 1 wäre eine sogenannte perfekte Zahl (Summer der echten Teiler = die Zahl selber). Die 1 zählt man aber gemeinhin nicht zu den perfekten Zahlen, sondern 6 ist die erste. Aber das nur nebenbei. Hannah 23Apr10 20:46
Meiner Einschätzung nach verläuft das analog zu der Tatsache, dass 1 auch keine Primzahl ist. In dem Fall hätte 1 keinen echten Teiler, die Summe wäre also 0. SebastianD 23Apr10 20:41
Hallo. So wie ich das sehe, gilt 1 als echter Teiler und die selbe Zahl nicht. Was ist dann die Summe der echten Teiler von 1? 0 oder 1? Peter 23Apr10 20:37
@Ben: Nachdem man die Zusammenfassung geschrieben hat, einfach abspeichern und den Editor schließen. Bei Vim geht das mit :wq gefolgt von Return (mit : fängt jedes Kommando in Vim an, w steht für write und q steht für quit). Ich habe übrigens angefangen, eine kleine Einführung für Vim zu schreiben, siehe den Link zu Editor unter den "Erklärungen zu den diversen Systemen ..." oben. Hannah 23Apr10 18:32
Hallo. Wie schickt man, nachdem man svn commit gemacht hat und sich nun in vim befindet seine Zusammenfassung endgültig ab? Also svn add => svn commit => vim öffnet sich => Zusammenfassung eintragen => und dann? Danke. Ben 23Apr10 18:27
@Tina + alle: Ja, der Linux+Überhaupt-Crash-Kurs findet am Montag, den 26. April von 16 - 18 Uhr statt und zwar im SR 00-010/14. Zu der Zeit konnten fast alle, ich hoffe auch Sie. Jens Hoffmann wird den Kurs halten aber ich werde auch mal vorbei schauen um mir ein Bild davon zu machen, wo die Probleme liegen. Ich denke, wenn klar ist wie man unter Linux eine Konsole und einen Editor öffnet, ist der Rest relativ einfach, zumal Sie ja das Programm aus der Vorlesung haben, das dem, das Sie für die Übung schreiben sollen sehr ähnlich ist (sie müssen da jetzt die ganzen Details noch gar nicht verstehen). Versuchen Sie es bis Mittwoch, wenn das gar nicht klappt, reden wir nochmal. Aber wird schon klappen. Hannah 23Apr10 14:24
Steht jetzt schon der Termin für den Linux-Crash Kurs am Montag fest? Ich muss nämich Montags immer arbeiten und dann evtl. sehr dringend eine Vertretung finden, wenn sich s überschneidet. Ich hab versucht mich auf eigene Faust ein bissl in Linux zurecht zu finden und das Übungsblatt zu machen - nun machts mich schon ganz nervös, dass ich frühestens Dienstag damit anfangen kann. Können wir das erste Blatt dann evtl. auch etwas verspätet abgeben? Tina 23Apr10 13:39
Das klappt ja super mit der gegenseitigen Hilfe hier, das freut mich Hannah 23Apr10 12:46
@Madeleine: Ja, das bekomme ich auch ganz oft. Das SVN möchte vor dem commit gerne einen kurzen Text der zusammenfasst was Sie da in diesem commit machen. Dazu braucht es einen Editor, und dazu guckt SVN in einer der Umgebungsvariablen SVN_EDITOR, VISUAL oder EDITOR nach. Die sind bei Ihnen alle drei nicht gesetzt, wie bei mir auch oft. Machen Sie dazu einfach
export EDITOR=vim
bzw. ersetzen Sie vim durch den Editor Ihrer Wahl (ich habe in der Vorlesung vim benutzt). Dann sollte das svn commit klappen, wenn nicht, fragen Sie bitte nochmal. Hannah 23Apr10 12:41
Hi MadeleineP, die Fehlermeldung besagt, dass subversion den voreingestellten editor nicht finden kann. Probiere bitte aus, ob einer der folgenden Editoren vorhanden ist: vi, vim, nano, emacs. Einer dieser editoren ist mit Sicherheit bei dir vorhanden. anschliessend wählst du vor dem commit deinen favoriten unter diesen Editoren aus, und setzt diesen mit dem Befehl "export SVN_EDITOR=nano" als Standard. nano musst du hier durch den von dir ausgewählten editor ersetzen. Anschliessend sollte der commit aufruf von svn fehlerfrei funktionieren.TimL 23Apr10 12:40
Hallo, ich habe Probleme beim Übertragen der Daten über den svn commit Befehl und bekomme folgende Fehlermeldung: "svn: Commit failed (details follow) svn: Could not use external editor to fetch log message; consider setting the $SVN_EDITOR environment variable or using the --message (-m) or --file (-F) options svn: None of the environment variables SVN_EDITOR, VISUAL or EDITOR is set, and no 'editor-cmd' run-time configuration option was found" Kann mir vielleicht jemand sagen, welche Einstellungen ich da wo ändern muss?Danke schön. MadeleineP 23Apr10 12:24
@Sebastian: (1) Ich persönlich finde 2010-04-22 22:27:32 nicht so richtig gut lesbar; (2) Die meisten Leute machen Änderungen ohne eingeloggt sein; (3) So richtig viel Arbeit finde ich es nicht sowas wie Xyz 23Apr10 12:00 zu schreiben. Ich würde von daher sehr gerne bei der jetzigen Version bleiben und bitte alle sich daran zu halten, sonst wird es nämlich unübersichtlich. Es ist im Grunde ganz ähnlich wie mit dem Stylesheet für unseren Code, da kann man auch drüber streiten ob jetzt zwei oder drei Leerzeichen Einrückung besser ist, oder ob man wirklich die öffnenden geschweiften Klammern in eine eigene Zeile setzen sollte. Das wichtigste bei der Sache ist aber Konsistenz, also dass es alle gleich machen. Hannah 23Apr10 12:04
Hi alle, im Pool gibt es ein Problem mit gtest, zumindest wenn man es so macht wie in der Vorlesung. Man muss beim kompilieren -pthread anhängen (zumindest gehts so bei mir :)).Beispiel aus der VL, so dass es im Pool geht: g++ -o SumOfDigitsTest SumOfDigitsTest.cpp /usr/local/lib/libgtest.a -pthread (muss im Makefile geändert werden). RobinS 23Apr10 11:53
Dies gilt auch für die Ubuntu Version in Virtual Box, welche letztes Semester, in Systeme I verteilt wurde. JonathanN 23Apr10 14:00
Wer auf Windows besteht, kann übrigens auch Cygwin benutzen. Das ist allerdings nur für Leute zu empfehlen, die auch einigermaßen mit Linux klarkommen.
Eine Frage noch: Könnten wir nicht auf die Wiki-Signaturen (-- 84.23.67.137 2010-04-23 11:40:15 wird zu -- SebastianD 2010-04-22 23:27:32) umsteigen? Ich persönlich finde die schöner und weniger Mühe ist es allemal. SebastianD 23Apr10 00:26
@Dario (und alle anderen Linuxunwissenden): Ich hab mich letzte Nacht auch mit meiner Unwissenheit Ubuntu in der Virtualbox rumgeschlagen und bin damit nicht sehr weit gekommen (es tauchten bei sudo apt-get install subversion so lustigen Sachen auf wie Fehlermeldungen welche beim anschauen eine Fehlermeldung erzeugten, dass ich die Fehlermeldung nicht ansehen können weil es einen Fehler mit dem Programm gäbe welches die Fehlermeldung ausgelöst habe). Bin dann heute auf das hier http://stadt-bremerhaven.de/ubuntu-ohne-angst-auf-der-festplatte/ gestoßen, hab es ausgeführt und bin dann fast in meinen Monitor gehüpft weil es auch erst nicht ging. Aber dank dem hier http://wiki.ubuntuusers.de/Wubi#Start und vor allem der Problembeschreibung ganz unten läuft es nun alles ganz gut. Ich finde im Moment, dass es ein gutes Mittelding zwischen VirtualBox und eigener Linux-Partition ist. Ben 23Apr10 00:03
@Daniel: Ja, man muss beim Kompilieren der Tests /usr/local/lib/libgtest.a mit angeben, sonst findet er die ganzen gtest Funktionen nicht. Steht aber auch in meinem Makefile aus der Vorlesung genau so. Hannah 22Apr10 20:20
Okay, habs.
$ g++ SumOfDivisorTest.cpp /usr/local/lib/libgtest.a
Wer Probleme beim compilieren der Test Datei hat sollte diesen Parameter mal probieren. Daniel 22Apr10 20:08
$ g++ SumOfDivisorTest.cpp /tmp/cchDafPB.o: In function main: undefined reference to `testing::InitGoogleTest(int*, char**)' undefined reference to `testing::UnitTest::GetInstance()' undefined reference to `testing::UnitTest::Run()'
Ich habe mich an die kleine Anleitung von Axel Lehmann auf der GTest Seite gehalten. gtest/make/sample1_unittest läuft ohne Probleme durch. Daniel 22Apr10 19:38
@Tim: Bei solchen Anfragen bitte immer den RZ-Account nennen, sonst wissen wir nicht wo wir nachgucken sollen. Hannah 22Apr10 19:36
Ich habe so meine Probleme mit Subversion. Ich habe per "svn add" mein uebungsblatt-1 Verzeichnis zum Repository hinzugefügt und dann mit "svn commit" bestätigt. Wenn ich jetzt aber mit "svn list" nachschauen möchte, ob der Ordner auch im Repository ist, werden mir dort nur die Dateien angezeigt, die dort von Anfang an drin waren. Mache ich irgendwas falsch oder habe ich sonst irgendwo einen Denkfehler? TimV 22Apr10 19:32
Die URL ist tatsächlich falsch. Auf der SVN-Seite beginnt sie mit "svn-ad" und nicht mit "ad-svn". Damit hat der Checkout dann auch geklappt, danke. SebastianD 22Apr10 18:27
@Sebastian: Ich habe es gerade noch einmal probiert, und ich kann mit svn checkout http://ad-svn.informatik.uni-freiburg.de/teaching/cplusplus-ss2010/hb1003 hb1003 --username=hb1003 mein Unterverzeichnis auschecken. Bei solchen Problemen: Schicken Sie doch bitte eine Mail mit dem user name von Ihrem RZ-Account an Jens Hoffmann < jgk.hoffmann@googlemail.com >, und er schaut dann nach ob bei Ihrer Registrierung alles geklappt hat und Ihre Daten bei uns angekommen sind. Hannah 22Apr10 18:21
Blöde Frage, aber kann es sein, dass die URL zum Repository falsch ist? Could not resolve hostname `svn-ad.informatik.uni-freiburg.de': Der angegebene Host ist unbekannt. Ich habe es dann mit einem Punkt nach dem svn versucht: svn: Das Projektarchiv wurde zeitweilig nach »https://svn.ad.informatik.uni-freiburg.de:443/teaching/cplusplus-ss2010/meinlogindings« verschoben; bitte umplatzieren Also habe ich versucht, mir davon meine Kopie zu holen. Ergebnis war Error 200. SebastianD 22Apr10 18:18
Hi @all, ich werde heute abend eine Schritt-Für Schritt Anleitung fertig machen, die euch mit einem Video zeigen soll, wie man sich selbst ein Linux-System in einer virtuellen Maschine einrichtet, mit dem ihr dann alles habt, was ihr benötigt, um die Übungsaufgaben bearbeiten zu können. Mfg Tim 22Apr10 18:03
@Luc, http://lmgtfy.com/?q=vim+zeilennummer+anzeigen -> Das erste Ergebnis zeigt dir eine Step-By-Step Lösung auf. @Luc2, wenn du das Dokument schon offen hast: ":set number" eingeben! (nonumber zum ausschalten) <- Alex 23. Apr 9:17 So, dank nettem Hiwi im RZ hab ich s geschafft eine Konsole unter Linux zu öffnen:-) Wie öffne ich nun die Datei daten.txt? Mit ls? Da kommt, dass die Datei nicht verfügbar ist obwohl ich mich eigentlich wie in der Beschreibung angemeldet habe. Tina
@Windows allgemein: Sie können das auch schon alles von einem DOS-Fenster unter Windows machen (das sind die schwarzen Fenster, die man als Normal-Benutzer unter Windows eigentlich nicht braucht, außer in Notfällen). Sie müssen sich dann halt so Programme wie den C++ Compiler und make und svn von Hand installieren, und auch die ganzen Standardbibliotheken. Auf einer Linux-Kiste ist das alles standardmäßig drauf. Es ist aber fuddelig und auch einfach unüblich die Sachen unter Windows von einer Konsole aus zu machen, und deswegen würde ich Ihnen das auch nicht raten. Und um es nochmal zu sagen, Sie müssen nicht viel von Linux verstehen um das zu machen, was wir für die Vorlesung brauchen. Und ein Window Manager mit Desktop und Fenstern, wie man das von Windows kennt, ist auch unter Linux / Unix schon lange Standard (das heißt dann da KDE oder GNOME oder so). Hannah 22Apr10 16:02
@Luc: Ja, ein MAC mit seinem Pseudo-Unix ist kein Problem. Sie werden ja die Konsole auch wirklich nur für ein paar ganz wenige und grundlegende Sachen brauchen, die Hauptsache werden schon die Programme sein die wir schreiben. Ich möchte halt nur nicht, dass Sie jetzt am Anfang schon eine integrierte Entwicklungsumgebung a la Eclipse oder NetBeans oder Visual C++ benutzen, weil man dann die Zusammenhänge auf der Ebene unten drunter nicht wirklich verstehen lernt, und das sollen Sie aber. Hannah 22Apr10 15:53
Hallo, was ist mit den MAC Usern? Viele terminal Befehle die unter Linux existieren, funktionieren auch unter MAC, nur jetzt ist halt die Frage, reicht das aus um alle Übungen schreiben zu können? Gruß Luc 22 Apr20 15:39
@Dario: Hallo Dario. Ich schlage dir zum Ausprobieren Ubuntu in einer Virtual Box vor. Die Virtual Box bekommst du hier: http://www.virtualbox.org/wiki/Downloads. Das neueste Ubuntu findest du z.B. hier: http://www.ubuntu.com/GetUbuntu/download. VBox installieren, Festplatte an Ubuntu angepasst erstellen, Ubuntu-iso-image einbinden und fertig. Es ist wirklich sehr einfach, einfach mal ausprobieren und bei Fragen noch einmal melden. Jens 22Apr10 14.57
Hallo, ich habe noch nie im meinem Leben Linux benutzt und deshalb kenne mich gar nicht aus. Ich habe Windows Vista und wollte fragen was für ein Version von Linux drauf machen konnte. Ich habe mich schon bei der Linux-crash-gruppe eingetragen aber wollte schon einiges ausprobieren. Ich lade gerade eine Ubuntu Version herunter , weil sie mir für Anfänger empfohlen wurde.Konnte mir jemand einfach seiner Meinung dazu sagen? Dario 22Apr10 10:47
Ein allgemeiner Hinweis noch zur Benutzung des Wiki: Wenn Sie sich anmelden (Link ganz oben links) können Sie eine Seite abonnieren. Sie bekommen dann immer eine E-Mail, sobald sich etwas an der Seite geändert hat. Das macht speziell bei dieser Seite hier mit den Fragen und Antworten hier Sinn. Es ist dann quasi wie eine Mailingliste. Wenn Sie selber etwas an der Seite ändern und es ist nur eine Kleinigkeit (z.B. Korrektur von einem Tippfehler o.ä.), setzen Sie bitte ein Häkchen in das Feld Triviale Änderung oben recht über dem Editierfeld. Damit verhindern Sie, dass bei trivialen Änderungen eine E-Mail an alle Leute geschickt wird, die die Seite abonniert haben. Wenn Sie aber etwas Substantielles zu der Seite hinzufügen, wie z.B. eine Frage, sollten Sie das Häkchen nicht setzen. Hannah 21Apr10 21:52
@Johannes: Das nennt man halt echte Teiler, siehe z.B. http://de.wikipedia.org/wiki/Echter_Teiler#Formale_Definition. Die Teiler die sowohl ungleich 1 als auch ungleich die Zahl selber sind nennt man nicht-triviale Teiler. Anyway, ist für die Aufgabe ja nicht wirklich wichtig. Hannah 21Apr10 21:45
Ich verstehe nicht ganz, wieso bei der Übungsaufgabe die 1 als echter Teiler angenommen wird, jedoch nicht die Zahl selbst. Sie teilt die Zahl doch auch ohne Rest. Johannes 21Apr10 20:44
Ich bin auf der Suche nach der in der Lesung verwendeten cpplint.py. Ich bekomme leider noch einige Fehlermeldungen. Vielleicht ist es keine schlechte Idee die .zip anzupassen: Makefile den Pfad vom Linter anpassen so, dass er in der .zip Datei zu finden ist. Vielen Dank. Alex R. 23. Apr. 21:09Uhr
Hier einfach eine Frage hinschreiben und dann am Ende mit Name, Datum und Uhrzeit "unterschreiben" so wie in dem Beispiel hier (bitte jeder in demselben Format). Hannah 21Apr10 00:36