lib einbinden in VS2008 in eine QT - Applikation

Verschiedenes zu Qt
Antworten
bierber
Beiträge: 72
Registriert: 27. November 2006 14:12

lib einbinden in VS2008 in eine QT - Applikation

Beitrag von bierber »

Hallo,

ich bin grad beim weiterbilden von meinen doch noch recht geringen QT-Kenntnissen.

Bisher habe ich immer an vorbereiteten Projekten weiter gearbeitet und mußt mich daher um so dinger wie das einbinden von Lib's nicht kümmern.

Nun muß ich das aber selber machen und bleib bereits am Anfang hängen.

Ich benutze VS2008. Ich habe mir eine kleine Versuchs-Lib geschrieben, die nichts weltbewegendes macht. Nur die Farbe eines Buttons beim drücken ändern.

Die lib hab ich nun geschrieben.

Die Frage ist nun wie ich meiner Applikation im VS2008 die Lib bekannt mache. Also wo wird sie eingebunden und wie angesprochen.

Das die Lib dann später in die pro - Datei kommt müßte ja das QT Addin für Visual Studio erledigen oder?

Vielen Dank im voraus

Felix
Mani99
Beiträge: 244
Registriert: 15. April 2009 10:46
Wohnort: München

Beitrag von Mani99 »

Die lib must du in der *.pro datei deiner anwendung eintragen, kann mir nicht vorstellen, das das von visual studio übernommen wird.

Hier wäre ein beispiel.

Am einfachsten aber läuft das so ab:

*.pro datei deines programms

Code: Alles auswählen


TARGET = Testprogramm
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui 
/*
...
...
... 
*/

unix:
{
INCLUDEPATH = [pfad_wo_die_header_liegen] \
                         [noch_ein_pfad_wo_header_liegen]
# -L (grosses L)
LIBS += -L[pfad_wo_die_lib_liegt]

# -l (kleines L)
LIBS += -l[name_der_lib_ohne_datei_endung]
}

win32:
{
INCLUDEPATH = [pfad_wo_die_header_liegen] \
                         [noch_ein_pfad_wo_header_liegen]

LIBS += [pfad_wo_die_lib_liegt_inkl_lib_name]
}
Also als beispiel:

Code: Alles auswählen

unix:
{
# falls leerzeichen im pfad enthalten sind $$quote verwenden
#LIBS += $$quote(-L/home/my_user/development/include files/TestLib1/)

INCLUDEPATH = /home/my_user/development/includes/TestLib1/ \
                         /home/my_user/development/includes/TestLib2/

LIBS += -L/home/my_user/development/includes/TestLib1/
LIBS += -lMyTestLib1

LIBS += -L/home/my_user/development/includes/TestLib2/
LIBS += -lMyTestLib1
}

win32:
{
# falls leerzeichen im pfad enthalten sind $$quote verwenden
#LIBS += $$quote(c:\my_user\development\include files\TestLib1\MyTestLib1.lib)

INCLUDEPATH = c:\my_user\development\includes\TestLib1\ \
                         c:\my_user\development\includes\TestLib2\

LIBS += c:\my_user\development\includes\TestLib1\MyTestLib1.lib

LIBS += c:\my_user\development\includes\TestLib1\MyTestLib2.lib
}
//EDIT: Danke christian für den hinweis, hab das komplett übersehen.
Zuletzt geändert von Mani99 am 22. November 2010 15:51, insgesamt 2-mal geändert.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Achtung - Windows mit MSVC und nicht Linux :)
Also: http://doc.trolltech.com/4.6/qmake-vari ... .html#libs
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
bierber
Beiträge: 72
Registriert: 27. November 2006 14:12

Beitrag von bierber »

Hallo,

prinizipell klar, die lib muß ins pro file, aber mein pro File wird jedes mal beim Build vorgang neu erstellt, muß ich da einen compile Step anpassen? Oder bleibt das was ich dazu packe wenn es richtig ist drin?

Aber das ist ja nur die Compiler oder linker info, wei mache ich das ganze dann in MVS08 (mit QT Addon 1.1.7) bekannt .

mfg

Felix
Mani99
Beiträge: 244
Registriert: 15. April 2009 10:46
Wohnort: München

Beitrag von Mani99 »

bierber hat geschrieben: prinizipell klar, die lib muß ins pro file, aber mein pro File wird jedes mal beim Build vorgang neu erstellt, muß ich da einen compile Step anpassen? Oder bleibt das was ich dazu packe wenn es richtig ist drin?
Wenn du qmake -project aufrufst, sind die einstellungen weg!
Aber das ist ja nur die Compiler oder linker info, wei mache ich das ganze dann in MVS08 (mit QT Addon 1.1.7) bekannt .
Wie meinst du das, bzw. was meinst du genau?
bierber
Beiträge: 72
Registriert: 27. November 2006 14:12

Beitrag von bierber »

bierber hat Folgendes geschrieben:

prinizipell klar, die lib muß ins pro file, aber mein pro File wird jedes mal beim Build vorgang neu erstellt, muß ich da einen compile Step anpassen? Oder bleibt das was ich dazu packe wenn es richtig ist drin?



Wenn du qmake -project aufrufst, sind die einstellungen weg!
OK , das meinte ich muß ich mal die Doku wühlen was ich einstellen muß das das nicht passiert.

Zitat:

Aber das ist ja nur die Compiler oder linker info, wei mache ich das ganze dann in MVS08 (mit QT Addon 1.1.7) bekannt .
Die Frage ist wie ich das der IDE bekannt mache mit include oder Using namespace oder etc. Irgendwie muß ich dem MSC++ doch sagen, das es ab jetzt mit der lib arbeiten soll und dem entsprechend auch seine Intellisense usw anpassen.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

bierber hat geschrieben:
Wenn du qmake -project aufrufst, sind die einstellungen weg!
OK , das meinte ich muß ich mal die Doku wühlen was ich einstellen muß das das nicht passiert.
Einfach qmake -project bleiben lassen. Diese -project-Option ist zum initialien Erstellen eines project-files gedacht. Später wirst du nur "qmake" oder "qmake mein_projekt.pro" aufrufen, um ein neues Makefile zu bekommen.
Mani99
Beiträge: 244
Registriert: 15. April 2009 10:46
Wohnort: München

Beitrag von Mani99 »

bierber hat geschrieben:Die Frage ist wie ich das der IDE bekannt mache mit include oder Using namespace oder etc. Irgendwie muß ich dem MSC++ doch sagen, das es ab jetzt mit der lib arbeiten soll und dem entsprechend auch seine Intellisense usw anpassen.
Einfach die header files der klassen in der lib mit #include einbinden! Mit INCLUDEPATH im pro file hast du ja angegeben wo diese zu finden sind!
Antworten