Wrapper kompilieren

Alles rund um die Programmierung mit Qt
Antworten
Saiyaman
Beiträge: 111
Registriert: 20. Mai 2005 13:52

Wrapper kompilieren

Beitrag von Saiyaman »

Muss ich irgendwas in der Projekt-Datei der EXE beachten, damit die ordentlich gelinked wird?

Ich bekomme immer ein "undefined reference to...".

Die DLL (also Lib) hab ich ohne Probleme kompiliert und gelinkt. Nur die EXE macht Linker-Probs. :-/

exec.pro

Code: Alles auswählen

TARGET = mgcc

include(../../config.pri)

TEMPLATE = app

DESTDIR = ../..

DEPENDPATH += . \
	../libs \
	../libs/shared \
	../libs/ui_forms \
	../libs/widgets

INCLUDEPATH += . \
	../libs \
	../libs/shared \
	../libs/ui_forms \
	../libs/widgets

# Input

SOURCES += main.cpp

win32:RC_FILE = mgcc.rc
main.cpp

Code: Alles auswählen

#include "MonkeyApp.h"

int main( int argc, char ** argv )
{
    CMonkeyApp * mgcc = new CMonkeyApp (argc, argv);

    int exit = mgcc->exec();

    return exit;
}
config.pri

Code: Alles auswählen

UI_DIR = ../tmp/ui
MOC_DIR = ../tmp/moc
RCC_DIR = ../tmp/rcc
OBJECTS_DIR = ../tmp/obj/$${MGCC}

unix:OBJECTS_DIR = $$join(OBJECTS_DIR,,,/unix)
macx:OBJECTS_DIR = $$join(OBJECTS_DIR,,,/macx)
win32:OBJECTS_DIR = $$join(OBJECTS_DIR,,,/win32)
Fehlermeldung:

Code: Alles auswählen

..\tmp\obj\win32\main.o:main.cpp:(.text+0x6a): undefined reference to `CMonkeyApp::CMonkeyApp(int, char**)'
Was heißt das jetzt? Findet er die DLL nicht bzw. kann keine Verbindung zw. EXE und DLL herstellen?

MfG
Esleborn
Beiträge: 265
Registriert: 27. Januar 2005 01:23
Wohnort: Baden-Würtenberg
Kontaktdaten:

Beitrag von Esleborn »

mmh wie erstellst du die dll? Auf deren Klassen musst der linker zugriff bekommen, sprich du musst ihm sie bekannt machen... ist das bei vs nicht mit einer "begleitenden" Lib gemacht? Zumindest kann man bei dlls doch libs miterstellen, die auf diese dll weiterleiten, oder weiß ich grad was falsch?
Glaube an eine Lösung, nur dann kannst du auch eine finden.
Saiyaman
Beiträge: 111
Registriert: 20. Mai 2005 13:52

Beitrag von Saiyaman »

Yo. So ähnlich - hab's rausbekommen. Es fehlt in der exec.pro:

Code: Alles auswählen

LIBS += -L"../.." -lmgcc
So erkennt er meine vorher kompilierte Lib, die ja neben der DLL auch eina *.a-Datei ausgespuckt hat.

MfG
Antworten