Seite 1 von 1

lib einbinden in VS2008 in eine QT - Applikation

Verfasst: 22. November 2010 09:42
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

Verfasst: 22. November 2010 15:08
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.

Verfasst: 22. November 2010 15:35
von Christian81
Achtung - Windows mit MSVC und nicht Linux :)
Also: http://doc.trolltech.com/4.6/qmake-vari ... .html#libs

Verfasst: 22. November 2010 16:30
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

Verfasst: 22. November 2010 16:40
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?

Verfasst: 23. November 2010 08:23
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.

Verfasst: 23. November 2010 08:39
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.

Verfasst: 23. November 2010 08:43
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!