Einbinden von Bibliotheken (gelöst)

Alles rund um die Programmierung mit Qt
Antworten
Thorvga
Beiträge: 10
Registriert: 14. November 2009 08:10

Einbinden von Bibliotheken (gelöst)

Beitrag von Thorvga »

Hallo,

Ich habe QextSerialPort runtergeladen und in die Projektdatei bei LIB eingefügt und auch die Header mit include eingebunden.

Und wenn auch auch ein Objekt von der Klasse erzeugen will, so wird auch automatisch die geforderten Parameter vom Konstruktor angezeigt, also erkennt er den Header.

Aber wenn cih es zu compilieren versuche, so erhalte ich die Fehlermeldung:

undefined reference to '...'


Ich hoffe ich könnt mir schnell helfen.
Ich bedanke mich für euer Bemühen.

Mit freundlichen Grüßen
Thorvga
Zuletzt geändert von Thorvga am 17. November 2009 22:59, insgesamt 1-mal geändert.
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Wie hast die lib eingebunden?
Zeig mal Projektdatei

Den Header hat er aber scheinbar die Lib nicht!
Thorvga
Beiträge: 10
Registriert: 14. November 2009 08:10

Beitrag von Thorvga »

ok, sry, hier die Code-Schnipsel wo ich was "eingebunden" habe:

Das Projekt heißt Scanner und wird eine GUI-Applikation und folglich steht in Scanner.pro

Code: Alles auswählen

#-------------------------------------------------
#
# Project created by QtCreator 2009-11-16T09:10:49
#
#-------------------------------------------------

TARGET = Scanner
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

INCLUDEPATH += debug\

CONFIG(debug, debug|release):LIBS  += -qextserialportd
else:LIBS  += -qextserialport
(Ich benutze WinVista, das fertige Projekt soll dann aber auch WinXP laufen)

Und in mainwindow.cpp (ja ich war so einfaltslos und hab die Standardbenennung für das Hauptfenster genommen) steht:

Code: Alles auswählen

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "win_qextserialport.h"
#include "qextserialport.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    QextSerialPort qesp("COM1");
}
Der Fehler kommt ja nicht, wenn ich das Programm ausführen will sondern beim Kompilieren:
C:/Users/Demo/Documents/Scanner/mainwindow.cpp:19: undefined reference to `QextSerialPort::QextSerialPort(QString const&, QextSerialBase::QueryMode)'
C:/Users/Demo/Documents/Scanner/mainwindow.cpp:19: undefined reference to `QextSerialPort::~QextSerialPort()'
:-1: error: collect2: ld returned 1 exit status
Wenn ich in der on_pushButton_click() Methode statt dessen erster einen Zeiger erzeuge und dann das Objekt, also

Code: Alles auswählen

    QextSerialPort *qesp;
    qesp = new QextSerialPort("COM1");
So kommt immer noch die erste und letzte Fehlermeldung von den drei oben zitierten.

Ich vermute, dass es wohl nur irgendeine Kleinigkeit sein muss.
Ob ich beim includen

Code: Alles auswählen

#include "qextserialport.h"
oder

Code: Alles auswählen

#include <qextserialport.h>
macht bei der Fehlermeldung auch keinen Unterschied...

Die Dateien habe ich im Arbeitsverzeichnis vom Projekt. Die Header scheint er ja zu finden, da er die möglichen Parameter beim Konstruktor angibt.

Ich hoffe einer kann mir helfen.
Danke für euer Bemühen.

Gruß Thorvga
Thorvga
Beiträge: 10
Registriert: 14. November 2009 08:10

Beitrag von Thorvga »

Ok, es hat sich erledigt.
Ich habe durch weitere Recherchen im Internet gelesen, dass man einfach die .cpp auch ins Projekt einfügen muss. Damit funktioniert jetzt das Programm soweit auch.
Antworten