qmake und CFLAGS

Verschiedenes zu Qt
Antworten
oarlock99
Beiträge: 8
Registriert: 30. Januar 2008 11:28

qmake und CFLAGS

Beitrag von oarlock99 »

Hallo zusammen,

ich möchte qmake (Qt 4.3.2) gerne folgende CFLAGS übergeben:
CFLAGS=-L. -lftd2xx c:/projects_qt/QUsbCan

Folgendes habe ich schon probiert:
1 Die .pro Datei ändern
Folgende Parameter
QMAKE_CFLAGS_RELEASE += L. -lftd2xx c:/projects_qt/QUsbCan
QMAKE_CFLAGS_DEBUG += L. -lftd2xx c:/projects_qt/QUsbCan
in der .pro Datei eintragen. Dann in der Eingabeaufforderung qmake eingeben damit das Makefile erzeugt wird. Das Makefile habe ich dann kontrolliert ob der Eintrag auch auftaucht. Unter Makefile.Debug und Makefile.Release ist dann der zugehörige Eintrag unter den CFLAGS zu finden. Wenn ich aber das Projet mit make versuche zu kompilieren dann erhalte ich weiterhin eine Fehlermeldung vom Linker (siehe unten).

2. Die qmake.conf ändern:
Jede Änderung von QMAKE_CFLAGS_DEBUG und QMAKE_CFLAGS_RELEASE in der qmake.confi unter C:\Qt\4.3.2\mkspecs\win32-g++ zeigt keinerlei Auswirkung auf das Makefile das erstellt wird. Sollte es aber, oder?

3. Makefile
Ich habe auch schon das erstellte Makefile per Hand editiert (CFLAGS hinzugefügt) und anschliessend mit make versucht das ganze zu kompilieren. Aber auch hier kein Erfolg!


Bei allen 3 Varianten erhalte ich folgende Fehlermeldung:

Code: Alles auswählen

mingw32-make[1]: Entering directory `C:/projects_qt/QUsbCan'
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel
oc -mthreads -Wl -Wl,-subsystem,windows -o "debug/QUsbCan.exe" debug/main.o debu
g/QUsbCan.o  -L'c:/Qt/4.3.2/lib' -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4
debug/QUsbCan.o: In function `ZN7QUsbCan4openEi':
C:/projects_qt/QUsbCan/QUsbCan.cpp:58: undefined reference to `_imp__FT_Open@8'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug/QUsbCan.exe] Error 1
mingw32-make[1]: Leaving directory `C:/projects_qt/QUsbCan'
mingw32-make: *** [debug] Error 2
Dies ist exakt die Fehlermeldung die ich auch bei einem anderen Projekt ohne Qt (also nur Eingabeaufforderung) erhalte wenn ich dem Compiler die notwendigen Librarys nicht über die CFLAGS mitteile.
Ich gehe also stark davon aus, dass es unter Qt hier scheitert.

Kann mir jemand kurz sagen, wo ich Hand anlegen muss, damit qmake mir die benötigte Library einfügt, linkt oder wie auch immer?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Ich weiss zwar nicht was ne lib bei den CFLAGS zu suchen hat (wohl eher LFLAGS), aber egal :)

RTM: http://doc.trolltech.com/4.3/qmake-vari ... .html#libs
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
oarlock99
Beiträge: 8
Registriert: 30. Januar 2008 11:28

Beitrag von oarlock99 »

Das weis ich auch nicht, aber ich habe mich zum einbinden der dll an ein Makefile gehalten, wo das so gemacht wird.

Hier das Makefile, an das ich mich anlehne:

Code: Alles auswählen

:q
#TOPDIR  := $(shell cd ../..; pwd)

CC=gcc
CFLAGS=-L. -lftd2xx -ld2xx_table -Wl,-rpath /usr/local/lib

APP = test_canusb

all: $(APP)

$(APP): main.c	
	$(CC) -o $(APP) $(CFLAGS) main.c	

clean:
	rm -f *.o ; rm $(APP)

Und bei einem anderen Project, basierend auf der Eingabeaufforderung habe ich das auch so gemacht um den Treiber einzubinden. Hat prima funktioniert!

Wird das bei Qt anders gemacht, oder wie?

Gruß
Roland
oarlock99
Beiträge: 8
Registriert: 30. Januar 2008 11:28

Beitrag von oarlock99 »

Änderungen in meiner qmake.conf zeigen jetzt wirkung!

Hab vergessen die QMACSPEC zu setzen :?

Aber mein Probelm besteht weiterhin!

Gruß
Roland
oarlock99
Beiträge: 8
Registriert: 30. Januar 2008 11:28

Beitrag von oarlock99 »

Hurra Funktioniert!

Danke Christian81!

Hab folgendes hinzugefügt in qmake.conf

QMAKE_LIBS += -Lc:/projects_qt/QUsbCan/ -lftd2xx


Gruß
Roland
Antworten