Seite 1 von 1

[gelöst]Problem mit Linker oder MOC

Verfasst: 21. Mai 2006 22:44
von Annatar
Hallo,

ich hab ein Problem beim Linken.

Ich verwende Qt 4.1.1 und qmake zum erstellen der Projekt Dateien und Makefiles.

Mein Programm habe ich zuerst ohne Unterstützung von SIGNAL und SLOT kompiliert und getestet, was auch prima geklappt hat. Nach dem hinzufügen von Q_OBJECT im Header-File, kriege ich folgenden Fehler:

Code: Alles auswählen

moc_MainWindow.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: v
oid __thiscall MainWindow::drawgraph(void)" (?drawgraph@MainWindow@@QAEXXZ)
moc_MainWindow.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: v
oid __thiscall MainWindow::log(void)" (?log@MainWindow@@QAEXXZ)
moc_MainWindow.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: v
oid __thiscall MainWindow::measure(void)" (?measure@MainWindow@@QAEXXZ)
moc_MainWindow.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: v
oid __thiscall MainWindow::help(void)" (?help@MainWindow@@QAEXXZ)
moc_MainWindow.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: v
oid __thiscall MainWindow::about(void)" (?about@MainWindow@@QAEXXZ)
moc_MainWindow.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: b
ool __thiscall MainWindow::save(void)" (?save@MainWindow@@QAE_NXZ)
debug\AkkoSoft.exe : fatal error LNK1120: 6 unaufgeloeste externe Verweise
NMAKE : fatal error U1077: 'link' : Rueckgabe-Code '0x460'
Stop.
NMAKE : fatal error U1077: 'E:\MicrosoftVisualStudio\VC98\bin\NMAKE.EXE' : Rueck
gabe-Code '0x2'
Stop.
Warum werden die genannten Methoden nicht mehr gefunden? Fals es von Interesse sein sollte, das Projekt muss auf Windows programiert werden.

Besten Dank für jegliche Hilfe

Ronny

Verfasst: 21. Mai 2006 23:25
von BartSimpson
was haste denn in deiner .pro Datei stehen. Haste auch make distclean gefolgt von qmake laufen lassen?

Verfasst: 22. Mai 2006 18:45
von Annatar
Also mein .pro File:

Code: Alles auswählen

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

# Input
HEADERS += calibrate.h \
           CalibrateWindow.h \
           ErrorWindow.h \
           GraphWindow.h \
           MainWindow.h
SOURCES += calibrate.c \
           CalibrateWindow.cpp \
           ErrorWindow.cpp \
           GraphWindow.cpp \
           main.cpp \
           MainWindow.cpp
make distclean hab ich gemacht und qmake ebenfalls, allerdings mit genau dieser Fehlermeldung.

moc erstellt mir ja die moc_MainWindow.cpp Datei aus dem MainWindow.h Header. Wie kann es dann sein, dass er genau die im Header definierten Methoden nicht mehr findet? Ich raffs nicht...

Verfasst: 22. Mai 2006 18:51
von BartSimpson
benutzt du noch andere libs auser Qt?

Verfasst: 22. Mai 2006 19:07
von Annatar
jap. Ich brauch noch eine Library von NationalInstruments zur kommunikation mit einer DAQCard.
Wieso, kann das zu Problemen führen?
Und ja die hab ich im Makefile eingetragen (Nachdem der Linker einmal gemeckert hat).

Verfasst: 22. Mai 2006 19:37
von BartSimpson
das muss in die .pro Datei!!
mittels LIBS += -llibname

Verfasst: 22. Mai 2006 19:43
von Annatar
GRAZIE MILLE :D

habs eingefügt und es hat geklappt. Aber warum kann das nicht einfach im Makefile erledigt werden?

Naja egal. Es funktioniert und somit werdi ich das Projekt noch vor ablauf der Deadline abgeben können 8)

Danke nochmals für die Hilfe. Falls ich nochmals in eine Sackgasse renne melde ich mich wieder.

cu Ronny

PS: Das Problem wurde ja gelöst. Ich glaube dann werden die Threads hier geschlossen, oder?

Verfasst: 22. Mai 2006 19:49
von BartSimpson
Nö du solltes denn Titel in [gelöstt] ... ändern.