qmake erstellt mir keine moc-Dateien :-/

Alles rund um die Programmierung mit Qt
Antworten
Teemo
Beiträge: 7
Registriert: 6. November 2008 19:55

qmake erstellt mir keine moc-Dateien :-/

Beitrag von Teemo »

Hallo,

Ich bin neu hier und muss leider gleich mit einem Problem beginnen. Ich hoffe ihr könnt mir helfen:


Ich bin ein C++ und QT Anfänger und habe für die Uni mit einem Komilitonen zusammen ein kleines simples und einfaches Programm geschrieben.

Leider bekomm ich beim kompilieren ein Fehler. Nach ein paar Nachforschungen hab ich auhc das Problem gefunden :

qmake erstellt mir keine moc-Datei.

Ich habe, nachdem ich das Q_OBJECT in meine Header Datei eingebunden hab, qmake erneut ausgeführt. Leider hat dies auch zu keinem Erfolg geführt.
Wenn ich das xcode Projekt starte, wird mir auch in meinem Projekt die moc Datei angezeigt. Doch leider in Rot (er kann sie also nicht finden).


Ich benutze:
XCode 3.0
Mac OSX 10.5.5
und habe QT 4.4.1 (via dmg und QT.mpkg) installiert.


Bei meinem Komilitonen funktioniert unser Programm problemlos und wir haben auch schon die Pro Dateien abgeglichen. Meine sieht genauso aus wie seine.


Ich hab auch schon das Forum durchsucht und ne menge rumgegoogled. Leider bin ich zu keiner Lösung gekommen.

Vielleicht habt ihr noch ne Idee

Grüße

Teemo


ps: falls ich den Code, die Pro Datei oder sonst was posten soll, dann sagt bescheid.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Sind die Header auch in der pro-Datei zu finden?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Teemo
Beiträge: 7
Registriert: 6. November 2008 19:55

Beitrag von Teemo »

ja.

Meine Header-Datei : MainWindow.h

und meine Pro-Datei:

Archiv.pro

Code: Alles auswählen

######################################################################
# Automatically generated by qmake (2.01a) Do Nov 6 21:55:35 2008
######################################################################

TEMPLATE = app
TARGET = 
DEPENDPATH += .
INCLUDEPATH += .

# Input
HEADERS += MainWindow.h
SOURCES += main.cpp MainWindow.cpp

Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Wenn in MainWindow.h ein Q_OBJECT vorhanden ist (und die Klasse von QObject abgeleitet ist) dann wird auch eine moc_MainWindow.cpp erstellt und kompiliert. Wenn nicht - Testcase bitte.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Welche Ausgabe erhälst du, wenn du in einer Konsole:

Code: Alles auswählen

$ cd projektpfad
$ qmake
$ make
eingibst?
Teemo
Beiträge: 7
Registriert: 6. November 2008 19:55

Beitrag von Teemo »

Hi,


also ein Q_OBJECT ist in der Header Datei vorhanden.


Wenn ich

Code: Alles auswählen

qmake -project
qmake -spec macx-xcode Slider.pro


eingebe, werden alle Dateien erstellt, bis auf die moc Datei. Es gibt keine Ausgabe.


Und anschließend :

Code: Alles auswählen

tBook:Slider timo$ qmake
Failure to read QMAKESPEC conf file /Users/timo/mkspecs/macx-g++/qmake.conf.
Error processing project file: /Users/timo/Workspace/Slider/Slider.pro
tBook:Slider timo$ 

Code: Alles auswählen


tBook:Slider timo$ make
make: *** No targets specified and no makefile found.  Stop.
tBook:Slider timo$

Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Warum rufst Du qmake nochmal auf wenn Du die Makefiles/das Projekt schon mit "qmake -spec macx-xcode Slider.pro" erstellt hast?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Teemo
Beiträge: 7
Registriert: 6. November 2008 19:55

Beitrag von Teemo »

normalerweise erstelle ich mein Projekt wie oben beschrieben

Code: Alles auswählen

qmake -project 
qmake -spec macx-xcode Slider.pro
es kommt keine Fehlermeldung.

Ich habe es nur ein 2tes mal ausgeführt weil ich gucken sollte was dann passiert.

wenn ich nur qmake ausführe, werde ich aufgefordert weitere Parameter zu definieren.

Ich dachte vielleicht hilft die Fehlermeldung die kam, wenn ich es zum 2ten mal ausführe, jemand weiter.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Mit dem ersten qmake-Aufruf (den mit -spec) sollte ein XCode-Projekt erstellt worden sein. Also kein Makefile-Projekt und demnach auch kein make :)
Wenn Du das Projekt öffnest und in XCode kompilierst wird auch das moc-File erzeugt.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Teemo
Beiträge: 7
Registriert: 6. November 2008 19:55

Beitrag von Teemo »

Christian81 hat geschrieben:Mit dem ersten qmake-Aufruf (den mit -spec) sollte ein XCode-Projekt erstellt worden sein. Also kein Makefile-Projekt und demnach auch kein make :)
Wenn Du das Projekt öffnest und in XCode kompilierst wird auch das moc-File erzeugt.
leider nicht :-/


Also das XCode Projekt wird erstellt. Ich kanns auch öffnen ... und kompilieren. Aber leider spuckt er halt dann nen fehler aus und die moc datei im XCodeProjekt ist rot.
Dateianhänge
xcode_error.png
xcode_error.png (67.19 KiB) 24794 mal betrachtet
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

manchmal macht es Sinn, dort zu beginnen wo es 100% funktionieren sollte... daher solltest du, wirklich genau das in der Konsole eingeben, was wir hier schreiben, sonst ist das ganze sinnlos (Wenn es in der Konsole nicht funktioniert, geht es auch in XCode nicht).

Prüf mal die Rechte:

Code: Alles auswählen

$ ls -l /Users/timo/mkspecs/macx-g++/qmake.conf
Kann die Datei überhaupt gelesen werden?

[edit]
Ich halte übrigens auch den Pfad für seltsam... die "mkspecs" sind doch üblicherweise unterhalb des Trolltech-Verzeichnisses.. nicht unter $HOME...?
Teemo
Beiträge: 7
Registriert: 6. November 2008 19:55

Beitrag von Teemo »

solarix hat geschrieben:manchmal macht es Sinn, dort zu beginnen wo es 100% funktionieren sollte... daher solltest du, wirklich genau das in der Konsole eingeben, was wir hier schreiben, sonst ist das ganze sinnlos (Wenn es in der Konsole nicht funktioniert, geht es auch in XCode nicht).

Prüf mal die Rechte:

Code: Alles auswählen

$ ls -l /Users/timo/mkspecs/macx-g++/qmake.conf
Kann die Datei überhaupt gelesen werden?

[edit]
Ich halte übrigens auch den Pfad für seltsam... die "mkspecs" sind doch üblicherweise unterhalb des Trolltech-Verzeichnisses.. nicht unter $HOME...?
hm die Datei gibt es nicht.

Ich hab keine Ahnung warum er die Datei dort sucht. Eigentlich hab ich die .profile und .login datei mit den, in der Installationsanleitung angebenen Zeilen, ergänzt.


meine .profile datei

Code: Alles auswählen


PATH=/usr/local/Trolltech/Qt-4.4.3/bin:$PATH
 export PATH


und meine .login

Code: Alles auswählen

setenv PATH /usr/local/Trolltech/Qt-4.4.3/bin:$PATH


Wenn hier irgendwo kompletter Mist steht, dann sagt es mir. Ich kann nicht wirklich gut mit der Bash umgehen.


Danke schonmal
Teemo
Beiträge: 7
Registriert: 6. November 2008 19:55

Beitrag von Teemo »

Juhu !
Ich habs irgendwie hinbekommen... aber wodran es jetzt genau lag weiß ich nicht.


Ich hab zum einen eine .qmake.cache datei gelöscht... wo meiner Meinung nach einige Pfade falsch und verdächtig aussahen.


Anschließend hab ich noch ein bischen mit qmake rumgespielt und plötzlich hat mir make mocables endlich die mocs erstellt.


Ich hab dann nochmal folgendes eingegeben :

Code: Alles auswählen


qmake -spec /usr/local/Trolltech/qt-4.4.3/mkspecs/macx-g++ -macx -o Makefile HA6.pro


und nun scheint es zu gehen.

Mit qmake wird mir ne *.pro Datei erstellt. qmake -spec macx-xcode ha6.pro
erstellt mir die Projekt-Datei und beim kompilieren in XCode wird auch die moc erstellt und es kommt kein Fehler mehr...


Lag wohl an einem falschem Pfad oder was meint ihr ?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Teemo hat geschrieben: Lag wohl an einem falschem Pfad oder was meint ihr ?
Wenn Du Qt nach dem Kompilieren irgendwie rumgeschoben hast - ja. Siehe auch http://qtforum.de/forum/viewtopic.php?t=7794
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten