Nachdem ich jetzt noch ein paar mehr Probleme gelöst habe, häng ich wieder fest.
Mittlerweile kompilliere ich das Programm manuell mit der cmd.
Also
qmake -project
qmake
make
Bei make kriege ich folgende Ausgabe:
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pse
oc -mthreads -Wl -Wl,-subsystem,windows -o debug\QT_lernen.exe debug/main
g/Taschenrechner.o debug/moc_Taschenrechner.o -L"d:\Programme\QT\qt\lib"
w32 -lqtmaind -lQtGuid4 -lQtCored4
d:\Programme\QT\qt\lib/libqtmaind.a(qtmain_win.o): In function `WinMain@1
C:\qt-greenhouse\Trolltech\Code_less_create_more\Trolltech\Code_less_crea
\Troll\4.6\qt\src\winmain/qtmain_win.cpp:93: undefined reference to `_Unw
ume'
C:\qt-greenhouse\Trolltech\Code_less_create_more\Trolltech\Code_less_crea
\Troll\4.6\qt\src\winmain/qtmain_win.cpp:135: undefined reference to `_Un
sume'
d:\Programme\QT\qt\lib/libqtmaind.a(qtmain_win.o):C:\qt-greenhouse\Trollt
e_less_create_more\Trolltech\Code_less_create_more\Troll\4.6\qt\src\winma
./include/QtCore/../../src/corelib/tools/qvector.h:482: undefined referen
_Unwind_Resume'
d:\Programme\QT\qt\lib/libqtmaind.a(qtmain_win.o):C:\qt-greenhouse\Trollt
e_less_create_more\Trolltech\Code_less_create_more\Troll\4.6\qt\src\winma
./include/QtCore/../../src/corelib/tools/qvector.h:483: undefined referen
_Unwind_Resume'
d:\Programme\QT\qt\lib/libqtmaind.a(qtmain_win.o):qtmain_win.cpp:(.eh_fra
): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
make[1]: *** [debug\QT_lernen.exe] Error 1
make[1]: Leaving directory `C:/Users/Clemens/Desktop/C++/test/QT_lernen'
make: *** [debug] Error 2
Ich habe google auch schon ausgefragt, aber leider habe ich nichts passendes gefunden.
Und ehrlich gesagt glaube ich nicht, dass es helfen würde qt nochmal zu rebuilden.
Wenn ich meinen Code Mit CodeBlocks kompillieren möchte, kriege ich sehr oft diesen Fehler:
C:\Users\Benutzername\Desktop\C++\test\QT_lernen\main.cpp|9|undefined reference to `Taschenrechner::~Taschenrechner()'|
Den Code könnt ihr hier finden.
Bitte verschiebt diesen Thread in die passende grafische-oberfläche Abteilung.
lg
Ja, stimmt, hab an was anderes gedacht.
So würde es auch funktionieren und so mache ich es jetzt auch.
Aber im 2008er Studio hat es so gefunzt, dass ich die Projektabhängigkeit auf meine DLL gesetzt habe und der dann die jeweilige Konfiguration für Debug oder Release hergenommen hat.
Nur im 2010er unterscheidet er nicht mehr zw. Debug oder Release.
Was dann ein Problem ist, da meine DLL ja unterschiedliche Namen hat.
Ich wollte nur wissen, wie man das noch machen kann als den Linker Input zu setzen...
Hmm, gibt es einen geheimen Schalter beim GCC um ihn zum dynamischen Linken zu zwingen? Ich kann nichts finden, weil man ja naturgemäß -static angeben muss, um überhaupt statisches Linken zu bekommen. Für libgcc gibt es einen Schalter, aber das nützt für C++ herzlich wenig und ist auch eigentlich für andere Zwecke gedacht.
Wenn ich die Doku richtig verstehe wird aber libstdc++ statisch gelinkt, dann und nur dann wenn keine passende Objektdatei für dynamisches Linken gefunden wurde. Dies lässt mich zu der Vermutung kommen, dass diese eventuell fehlt? Der Dateiname müsste so etwas wie libstdc++.so sein (heißen shared objects in mingw auch .so? Oder sind das da .dll?).
edit: Und hier die man-Seite für den Linker, vielleicht wird jemand anderes daraus schlauer als ich:
http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html
cppfrager schrieb:
Ich finde es dann nur blöd wenn ein Fragesteller hier auch per Google gesucht hat nichts gutes gefunden hat und ihm dann neunmalklug die richtigen Suchbegriffe unter die Nase gehalten werden unter dem Motte "Bist wohl zu blöd zum Suchen".
Solange niemand "Bist wohl zu blöd zum Suchen" sagt, finde ich es gut, die richtigen Suchbegriffe verraten zu bekommen. Gibt oft hilfreiche Einblicke in die gängige Terminologie.
Arg.
Ich habe es gerade gefunden (mingw32-c++.exe sieht ja auch ganz schön aus....)! Manchmal reicht es wohl schon eine frage zu formulieren....
Es tut mir leid, dass ich hier einen Eintrag mit so etwas dämlichen hinterlassen habe.
Vielen Dank für die Antwort! Aber es scheint auch mit mingw32-c++.exe zu funktionieren, ohne dass man irgendwo noch etwas angeben mus.
Hi,
da ich für Windows und Mac entwickle und daher zwei verschiedene Projekte (XCode, VC++) mit geteiltem Quellcode habe, würde ich gerne neue Klassendateien, die ich in VC++ anlege nicht erst im VC++-Projekt-Ordner haben, sondern direkt im geteilten Verzeichnis meiner SVN-Struktur. Hat jemand ne Ahnung, wie ich VC++ das mitteilen kann? Ist ziemlich nervig, erst die Dateien anzulegen, dann zu verschieben und die verschobenen Dateien dann als neue Referenz zu importieren. Dann brauch ich auch keinen Wizard...
Vielen vielen Dank!
Sören
Dravere schrieb:
Martin Richter schrieb:
Team Foundation Server nicht zu vergessen...
Gibt es dazu eigentlich irgendwo einen guten Artikel für Leute ohne irgendwelches Wissen über den TFS? Mit VS2010 soll der TFS standardmässig dabei sein, oder?
Grüssli
In fast jeder: http://www.microsoft.com/germany/visualstudio/products/features.aspx
Hallo
Ich habe mit Visual C++ eine DLL gebaut, die besteht aus wxWidgets, boost, und Standard C++. Ich linke die Runtime statisch, boost und wxWidgets habe ich ebenfalls mit statischer runtime gebaut. Trotzdem ist in dem Manifest von der DLL immernoch die Abhängikeit von der 'Microsoft.VC90.CRT' drin, was bedeutet dass man unter Umständen das Redistributable Package nachinstallieren muss, was ich aber nicht so haben will.
Hat jemand einen Tipp wie ich die Abhängigkeit wegkriege? Danke!
Edit: Hat sich erledigt!
Tachyon schrieb:
Keine Ahnung, wie es unter VS2010 ist. Bei VS2008 kann man unter den Projekteigenschaften unter Konfiguratuionseigenschaften->Debugging->Umgebung den Pfad erweitern.
Einfach
PATH=%PATH%;<der Pfad zu Deiner dll>
eintragen. Vielleicht geht das auch noch anders, aber für mich hat es so immer ausreichend gut funktioniert.
Ja, ein paar Zeilen weiter oben gibt es die Eigenschaft Working Directory, bzw. in der deutschen Version wohl Arbeitsverzeichnis
Allerdings kann man auch den Output-Pfad eines Projektes abändern. Statt unter Debugging gibt es unter General das Output-Directory.
Und es gibt sogar noch die Möglichkeit, dass man mit dem Kompilieren des Testprojektes, der IDE die Anweisung gibt, dass die benötigte DLL direkt ins eigene Output-Directory rüberkopiert wird. Auf die einfache Art, in dem man die DLL einfach als File dem Projekt hinzufügt und dann unter Eigenschaften auswählt, dass es ins Output-Directory kopiert werden soll. Falls man für die Debug-Version und Release-Version unterschiedliche DLLs verwenden möchte, gab es da noch eine andere Möglichkeit ... steht sicher irgendwo in der MSDN
Und es würde mich nicht erstaunen, wenn es noch weitere Möglichkeiten gibt. Eine Suchfunktionen dürfte da sicher auch gute Ergebnisse liefern
Grüssli
Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?
Dieses Posting wurde automatisch erzeugt.
Hi,
tja scheint an "Helios" und Ubuntu 8.04 zu liegen. Es sieht so aus als ob Helios nicht mit der Version 8.04 zurechtkommt (also zumindets nicht mit CDT).
Also habe ich von 8.04 auf 10.04 ein update gemacht und siehe da, Make wird gefunden.
Gruß
Franky
[quote="wxSkip"]Dein 'wx-config --irgendwelche_flags' funktioniert nicht. Ich selbst habe so etwas noch nicht hingekriegt (unter Windows), aber jemand hat gemeint, man müsse keine Hochkommas, sondern ` oder ´ benutzen.[/quote]
Richtig. `wx-config --irgendwelche_flags`.