Zu der Optimierung...
Die Variable, die wegoptimiert wurde, sollte eine Send-Funktion von Dateien auf den Rückgabewert -1 (Fehler) überprüfen. Anscheinend kann hier kein Fehler auftreten, lt. Compiler. Wie auch immer...ich habe das Problem einfach, wie im ersten Artikel von euch beschrieben, gelöst, indem ich die Optimierung rausgehauen habe. Hatte diese Funktion in meine IDE übersehen.
Programm funzt jetzt wunderbar Danke für die Hilfe
stefan-tiger schrieb:
cooky451 schrieb:
... ich nutze jetzt einfach -O3, sollte schon passen so.
Les dir mal bitte diese Seite ganz durch: http://www.gentoo.org/doc/de/gcc-optimization.xml
evtl. bist du mit "-O2" besser unterwegs...
Hm.. schade, dass sie da keine Beispiele genannt haben..
Aber dann werde ich wohl doch lieber mit -O2 kompilieren
Wenn der "nBit" Wert größer als die Bitanzahl ist (also 32 bei x86 und 64 bei x64), so wird *keine* Warnung erzeugt sondern der Wert wird "Modulo" 32 bzw. 64 genommen.
Solche Pfade liegen im MinGW-Verzeichnis. Um ein eigenes Verzeichnis zu benutzen, solltest du bei configure --prefix=/c/blah oder so etwas angeben (/c ist C: usw.)
edit: ich merke grade, dass er auto, decltype, lambdas etc. schon kennt, aber die zustäzlichen libs (wie eben mutex, thread, etc.) scheinen noch nicht implementiert zu sein.
Jochen Kalmbach schrieb:
Du musst eine "Win32 Konsolenanwendung" erstellen!!! Dort das "Precompiled Header" deaktivieren und dann die *.cpp-Datei nach *.c umbenennen!
Welchen Vorteil bietet das gegenüber einem leeren Projekt?
Kannst du nicht ein Minimal-Beispiel zusammenbasteln oder es wenigstens etwas genauer erklären? Wovon genau sprechen wir denn hier? Kannst du z.B. in einer ÜE Klassen verwenden, ohne den entsprechenden Header einzubinden (wenn dieser irgendwo sonst im Projekt eingebunden wird)? Oder geht es um Präprozessor-Definitionen? Also mir ist sowas jedenfalls noch nicht aufgefallen.
Dann darfst Du eben doch nicht das Ganze Unterverzeichnis einbinden...
Ich verstehe nicht was Du nun willst. In diesem Anzeigemodus werden eben alle Dateien angezeigt. Man erkennt welche Dateien in einem Projekt sind, welche nicht. Wie soll nun das System wissen, wenn Du einen Ordner hinzufügst, dass diese zum Sourcecode gehören oder nicht, wenn sie noch nicht im Projekt sind?
Wo landen denn die Debug-Infos? Sind sie überhaupt für VS lesbar? Liegen sie im gleichen Verzeichnis wie die EXE?
Und Du musst nicht nur dem Compiler sagen, dass er Debug Infos erzeugen soll, sondern auch dem Linker!
Ich empfehle dir die Codeblocks IDE zu nehmen. Da hast du auch ein schönes Projekttemplate für wxWidgets und musst nur den Ordner von wx einmal angeben. Ich glaube schmerzfreier gehts nicht. Du kannst in Codeblocks auch den Visual C++ Compiler verwenden, dann brauchst du nicht mal mingw.
Servus,
bis jetzt fand ich Netbeans sehr gut bei meinen C++-Herumgestolpere. Nun will ich aber Unittests nutzen und da hakt es gewaltig. Netbeans hat ein eigenes Testframework, was wohl out-of-the-box klappen sollte, daher versuchte ich das.
Generell bin ich etwas verdutzt, wie zahlreich doch die Möglichkeiten für Unittests sind, aus der Java-Welt kenne ich nur JUnit. Das CPP-Unit-Tutorial fand ich recht umfangreich, dazu nutzt das Netbeans-Tutorial CUnit - ist CUnit etwa leichter zu händeln für einfache Tests? Breymann nutzt im Buch von 2009 eine Boost-Lib zum Testen - welches Testframework würdet ihr als erfahrene Entwickler einsetzen, wenn ihr ein paar einfache Regressionstests bauen wollt, vielleicht sogar ein paar eigene Testfunktionen schreiben, die nur bei eingeschaltetem Testsystem ausgeführt werden, das wäre auch nur eine Einstellung im Konfigurationsfile der Anwendung?!
Danke vorab für eine Antwort.
Als Ergebnis meines Netbeans-Simple-C++-Test erhalte ich keinen Build, sondern das da (nutze Netbeans 6.9.1 und Ubuntu 10.04, Anleitung zu meinem Vorgehen ist hier: http://netbeans.org/kb/docs/cnd/c-unit-test.html#addsimple):
"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Betrete Verzeichnis '/home/jay/gtd08042010/begleitend/fu-hagen/masterarbeit/h2r_bioinf/workspace-21122010/h2r'
"/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/h2r
make[2]: Betrete Verzeichnis '/home/jay/gtd08042010/begleitend/fu-hagen/masterarbeit/h2r_bioinf/workspace-21122010/h2r'
make[2]: »dist/Debug/GNU-Linux-x86/h2r« ist bereits aktualisiert.
make[2]: Verlasse Verzeichnis '/home/jay/gtd08042010/begleitend/fu-hagen/masterarbeit/h2r_bioinf/workspace-21122010/h2r'
make[1]: Verlasse Verzeichnis '/home/jay/gtd08042010/begleitend/fu-hagen/masterarbeit/h2r_bioinf/workspace-21122010/h2r'
"/usr/bin/make" -f nbproject/Makefile-Debug.mk SUBPROJECTS= .build-tests-conf
make[1]: Betrete Verzeichnis '/home/jay/gtd08042010/begleitend/fu-hagen/masterarbeit/h2r_bioinf/workspace-21122010/h2r'
"/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/h2r
make[2]: Betrete Verzeichnis '/home/jay/gtd08042010/begleitend/fu-hagen/masterarbeit/h2r_bioinf/workspace-21122010/h2r'
make[2]: »dist/Debug/GNU-Linux-x86/h2r« ist bereits aktualisiert.
make[2]: Verlasse Verzeichnis '/home/jay/gtd08042010/begleitend/fu-hagen/masterarbeit/h2r_bioinf/workspace-21122010/h2r'
mkdir -p build/Debug/GNU-Linux-x86/tests/tests
rm -f build/Debug/GNU-Linux-x86/tests/tests/newsimpletest2.o.d
g++ -c -g -I. -MMD -MP -MF build/Debug/GNU-Linux-x86/tests/tests/newsimpletest2.o.d -o build/Debug/GNU-Linux-x86/tests/tests/newsimpletest2.o tests/newsimpletest2.cpp
mkdir -p build/Debug/GNU-Linux-x86/tests/TestFiles
g++ -o build/Debug/GNU-Linux-x86/tests/TestFiles/f1 build/Debug/GNU-Linux-x86/tests/tests/newsimpletest2.o build/Debug/GNU-Linux-x86/main_nomain.o build/Debug/GNU-Linux-x86/javamain_nomain.o build/Debug/GNU-Linux-x86/h2r_nomain.o -lcppunit
make[1]: Verlasse Verzeichnis '/home/jay/gtd08042010/begleitend/fu-hagen/masterarbeit/h2r_bioinf/workspace-21122010/h2r'
/usr/bin/ld: cannot find -lcppunit
collect2: ld returned 1 exit status
make[1]: *** [build/Debug/GNU-Linux-x86/tests/TestFiles/f1] Fehler 1
make: *** [.build-tests-impl] Fehler 2
BUILD TESTS FAILED (exit value 2, total time: 515ms)
Ist zwar schon ein Weilchen her, aber da ich heute gerade ein wenig mit Quincy gespielt hab und die Infos nicht mehr alle verfügbar sind.
Im Menu auf: file -> new -> da Projekt wählen -> nächstes Fenster ausfüllen
Quelltextdatei erstellen und in Projektfenster aufnehmen, da passen auch mehrere hinein
Dann Quelltextdatei compilieren
und Projektfenster auf und Projekt bilden/Linken.
Besonderheit von Quincy: es wird versucht das Borland BGI nachzubilden, für die jenigen, die noch alte Quelltext mit geringem Aufwand umsetzen wollen. Also Farbe, geometrische Formen u.s.w.
Die WinBGIm wurde in C++ mit Containern erstellt - ob das optimal realisiert ist, sollen Andere sich den Kopf machen Im Zeifel, besser machen
Weiter werden noch FLTK-Applikationen unterstützt.
Viel Spass
f.-th.
Auf der genannten Seite steht ja schon fast alles, was man zum selbst entscheiden braucht. Man könnte zur Sicherheit noch in ein paar andere Foren hineinsehen...
http://www.slackforum.de/forum/index.php?t=msg&&prevloaded=1&th=2834&start=20
http://www.gargi.org/showthread.php?828-Probleme-bei-codeblocks-Installation
http://forums.codeblocks.org/index.php?topic=8877.0
Ich dachte eigentlich, das Problem mit dem Standardlib-Linken gäbe es nur bei MSVC++ unter Windows. Tut mir Leid, da könntest du höchstens noch das Internet bemühen, ich kenne das Problem leider (oder zum Glück?) nicht.