Seite 1 von 1

Problem beim Kompilieren von Qt 4.4

Verfasst: 6. Mai 2008 23:59
von MiltenDawn
Hallo,

Ich wollte auf meinem neuen PC mit Vista einmal wieder mit der Programmierung mit QT anfangen. Habe mir deshalb die Visual Studio 2008 Epress Edition sowie Qt 4.4 runtergeladen. Wie gewohnt habe ich die VS- Eingabeaufforderung gestartet und "configure -platform win32-msvc2008 -no-qt3support" benutzt und mit y bestätigt. Gewartet. Nach erfolgreichem Build "nmake" eingetippt. Lange gewartet.... Irgendwann (wohl ziemlich am Ende - er hat schon ca 3 GB erzeugt) hört er aber einfach auf. Dies hier ist der letzte Teil aus der Konsole:

Code: Alles auswählen

javacodemarker.cpp
javadocgenerator.cpp
linguistgenerator.cpp
location.cpp
loutgenerator.cpp
mangenerator.cpp
main.cpp
node.cpp
openedlist.cpp
pagegenerator.cpp
plaincodemarker.cpp
polyarchiveextractor.cpp
polyuncompressor.cpp
qsakernelparser.cpp
.\qsakernelparser.cpp(75) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instea
sable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
        C:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\stdio.h(237): Siehe Deklaration von 'fopen'
qscodemarker.cpp
qscodeparser.cpp
.\qscodeparser.cpp(153) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead.
ble deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
        C:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\stdio.h(237): Siehe Deklaration von 'fopen'
quoter.cpp
separator.cpp
sgmlgenerator.cpp
text.cpp
Code wird generiert...
Kompilieren...
tokenizer.cpp
.\tokenizer.cpp(456) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead.
le deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
        C:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\string.h(74): Siehe Deklaration von 'strcpy'
.\tokenizer.cpp(537) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead.
le deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
        C:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\string.h(74): Siehe Deklaration von 'strcpy'
.\tokenizer.cpp(538) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead.
le deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
        C:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\string.h(74): Siehe Deklaration von 'strcpy'
tree.cpp
uncompressor.cpp
webxmlgenerator.cpp
.\webxmlgenerator.cpp(130) : warning C4065: switch-Anweisung enthält 'default', aber keine case-Marken
yyindent.cpp
Code wird generiert...
        link /LIBPATH:"c:\Qt\qt-win-opensource-src-4.4.0\lib" /LIBPATH:"c:\Qt\qt-win-opensource-src-4.4.0\lib" /NOLOGO /IN
L:NO /SUBSYSTEM:CONSOLE /MANIFEST /MANIFESTFILE:"tmp\obj\release_shared\qdoc3.intermediate.manifest" /OUT:release\qdoc3.ex
ers\Milten\AppData\Local\Temp\nm561.tmp
        mt.exe -nologo -manifest "tmp\obj\release_shared\qdoc3.intermediate.manifest" -outputresource:release\qdoc3.exe;1

Was mache ich falsch?

Vielen Dank schonmal für eure Hilfe!

gruß Milten

Verfasst: 7. Mai 2008 06:34
von Christian81
Ich sehe keine Fehler, nur Warnungen. Er linkt auch korrekt.

Verfasst: 7. Mai 2008 08:03
von MiltenDawn
ich dachte, die "1" stünde für einen Fehler. Außerdem fand ich es extrem merkwürdig, dass da dann nichts mehr am Ende steht à la "Compiling succeeded"

Das heißt, jetzt kann ich das ganze benutzen?!


Vielen Dank für die schnelle Antwort! :-)


gruß Milten

Verfasst: 7. Mai 2008 08:05
von Christian81
Denke schon - einfach mal den Assistant oder Designer oder die Demos/Examples ausprobieren - wenn sie gehen ist es korrekt kompiliert.

Verfasst: 7. Mai 2008 19:57
von MiltenDawn
Nun gut. Habe die C:\Qt\4.4\bin bei Path hinzugefügt, neugestartet und tatsächlich schafft er es z.B. qmake von überall aus auszuführen. Allerdings bin ich trotzdem der Meinung, dass irgendetwas nicht nicht läuft.
Habe nämlich VS2008 Express gestartet, bei Extras->Optionen->Projekte und Projektmappen->VC++-Verzeichnisse folgendes eingetragen:

bei Ausführbare Dateien: C:\Qt\4.4\bin
bei Include: c:\qt\4.4\include
bei Bibliothekstdateien: C:\Qt\4.4\lib

Habe neues Projekt erstellt. Main.cpp hinzugefügt und folgende Zeile getippt:

Code: Alles auswählen

#include <QApplication.h>

-> Noch such file or directory....

ich guck im QT Ordner nach und sehe, dass die sich in Unterverzeichnissen von include befinden. Ich tippe also brav:

Code: Alles auswählen

#include <Qt/QApplication.h>
-> Kein Einstiegspunkt gefunden


Wenigstens das hat also soweit geklappt. Ich schreibe also Folgendes:

Code: Alles auswählen

#include <Qt/QApplication.h>

int main(int argc, char *argv[])
{
	QApplication myApp(argc, argv);
	

	return 0;
}
Und nun kommt leider folgender Fehler beim erstellen der QApplication Instanz:

Code: Alles auswählen

Fehler	1	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: virtual __thiscall QApplication::~QApplication(void)" (__imp_??1QApplication@@UAE@XZ)" in Funktion "_main".	main.obj
Fehler	2	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: __thiscall QApplication::QApplication(int &,char * *,int)" (__imp_??0QApplication@@QAE@AAHPAPADH@Z)" in Funktion "_main".	main.obj
Fehler	3	fatal error LNK1120: 2 nicht aufgelöste externe Verweise.	C:\C++\AV\Debug\AV.exe
Was mache ich falsch?

Bitte helft mir! :-)

gruß Milten

Verfasst: 7. Mai 2008 20:03
von Christian81
Tutorials durcharbeiten und qmake benutzen!

Verfasst: 7. Mai 2008 20:16
von MiltenDawn
könntest du das bitte nochmal genauer erklären? Denke bitte nicht, dass ich zu faul wäre selbst zu recherchieren! Habe ca. eine Stunde bei Google gesucht und versucht ähnliche Probleme zu finden - leider keine Erfolge.

Was für Tutorials soll ich lesen? Wieso soll ich Qmake verwenden?

mfG Milten

Verfasst: 7. Mai 2008 20:21
von Christian81
Du hast keine Ahnung von Qt aber willst alles von Hand machen. Also die ganzen uic, moc und sonstigen Aufrufe. Dabei hast du wohl noch nicht mal die Qt libs hinzugefügt sonst hättest Du keine Probleme mit dem Einsprungpunkt.
qmake erzeugt dir ein .vcproj wo alles korrekt drin ist.
Tutorials - ich würde mal sagen die Doku solltest Du dir auch mal anschauen, da hättest Du die Tutorials gesehen.

Verfasst: 7. Mai 2008 20:25
von MiltenDawn
Ich stimme dir zu, dass ich keine Ahnung von Qt habe. ABER:

Was meinst du mit "Alles von Hand machen wollen"?! Bestimmt nicht!
Sage mir doch bitte, wie man es einfacher machen sollte? Ich habe die Libs imho über V++ - Verzeichnisse-> Bibliotheken includiert. (Dachte ich zumindest)

Ich bin gerne bereit, mich belehren zu lassen...


gruß Milten

Verfasst: 7. Mai 2008 20:33
von Christian81
Benutze endlich ein pro-File und qmake!

Verfasst: 7. Mai 2008 20:41
von MiltenDawn
Mal etwas persönlicheres:

Warum bist du so unfreundlich?! Habe ich dir irgendetwas getan? Ich gebe mir wirklich Mühe, das Ganze zu verstehen und versuche meine Beitrage ausführlich zu schreiben und meine Probleme möglichst präzise zu schildern. Das einzige was du darauf antworten kannst sind sinnlose Einzeiler, die man ungefähr mir "Benutz Google" gleichsetzen könnte.


Ich bin dir wirklich dankbar, dass du mir helfen willst, ich verstehe aber einfach nicht, warum du das auf diese Art machen musst.

mfG Milten

Verfasst: 7. Mai 2008 20:45
von Christian81
Wenn ich sage dass es für einen Anfänger nicht sinnvoll ist alles von Hand einzugeben und stattdessen qmake benutzt werden sollte aber er kein bisschen drauf eingeht - wie soll ich da reagieren?
Ist es so schwer sich die Tutorials mal anzuschauen, mal qmake zu starten und ein .vcproj damit zu erstellen?

Verfasst: 7. Mai 2008 20:48
von MiltenDawn
Tut mir leid, vielleicht habe ich dich falsch verstanden...

Werde mich jetzt ein wenig in Sachen MakeFile und Qmake reinlesen.

Wäre trotzdem dankbar, wenn du mir kurz sagen würdest, was ich vorher "alles von Hand gemacht habe". Ich weiß es nämlich ehrlich nicht.


gruß Milten

Verfasst: 7. Mai 2008 20:51
von Christian81
Wie ich schon sagte - die eventuellen moc und uic-Steps. Außerdem die korrekten Qt-Libs (Debug/Release) und die Include-Verzeichnisse.

Nimm Tutorial1, lass "qmake -tp vc" drauf los und schon hast Du ein .vcproj in dem alles korrekt ist. Später kannst du es ja von Hand machen (Falls du zu viel Zeit hast), aber am Anfang hat das nicht viel Sinn.