Seite 1 von 1

Wrapper kompilieren

Verfasst: 16. Juli 2006 22:24
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

Verfasst: 16. Juli 2006 22:27
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?

Verfasst: 17. Juli 2006 12:29
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