Seite 1 von 1

[gelöst] Libraries + includepath

Verfasst: 2. März 2009 15:47
von chrootdev
Hallo,

ich verstehe noch nicht ganz wie das mit den includes funktioniert, und zwar folgendes szenario:

Ich habe eine statische lib mit qt erstellt, alles im pro file eingetragen:

Code: Alles auswählen

LIBS += -LC:/devlibs -lWriteOut
INCLUDEPATH = -IC:/devlibs/
Und jetzt möchte ich die header datei per include in mein laufendes projekt einbinden.

Das ganze mache ich so:

Code: Alles auswählen

#include "C:\devlibs\writeout.h"
Was ich jetzt nicht verstehe, warum muss ich immer beim include den ganzen pfad angeben? Bzw. wie kann ich das ändern das ich nicht immer den ganzen pfad angeben muss?

Bez. c++ grundlagen, ich habe die stelle im openbook schon gelesen, jedoch wird das dort nur sehr oberflächlich behandelt.

Danke!

Mfg

Verfasst: 2. März 2009 17:41
von Christian81
Beim Include musst Du es nicht angeben, aber INCLUDEPATH ist falsch --> http://doc.trolltech.com/4.4/qmake-vari ... ncludepath

Verfasst: 3. März 2009 07:52
von chrootdev
Danke, jetzt hab ich das auch verstanden!

Eins wäre da noch, gibts für das *.pro file auch umgebungsvariablen? Ich habe zwar variablen in der doku gefunden, die alle möglichen qt verzeichnisse ausgeben, aber gibts auch welche die z.b. unter linux das homeverzeichnis ausgeben oder unter windows das benutzerverzeichnis oder systemverzeichnis?

Danke!

Als beispiel:

Code: Alles auswählen

LIBS += -L$$(HOME_DIR)/devlibs

Verfasst: 3. März 2009 07:58
von Christian81
Man kann auf Umgebungsvariablen verweisen, aber die sind unter Windows und Linux nicht gleich --

Code: Alles auswählen

win* {
  ...
} 
linux* {
  ...
}

Verfasst: 3. März 2009 08:07
von chrootdev
Danke für die antwort, aber wo finde ich in der doku wie ich auf umgebungsvariablen verweise?

Ich habe in der doku eben nur qt spezifischen variablen gefunden!

Verfasst: 3. März 2009 08:14
von Christian81

Verfasst: 3. März 2009 08:35
von chrootdev
Ich glaube wir reden aneinander vorbei!

Ich suche eine möglichkeit auf umgebungsvariablen des systems zuzugreifen und nicht von qt!

Das einzige was ich gefunden habe ist das hier:

http://doc.trolltech.com/4.5/qmake-vari ... e.html#pwd

Ich suche eine möglichkeit auf umgebungsvariablen zuzugreifen wie z.b.:

$$(HOME_DIR) oder $$(ROOT_DIR) oder sowas, gibts sowas?

Um zu verdeutlichen was ich meine:

Code: Alles auswählen

win* {
 #soll -LC:/devlibs ersetzen
 LIBS += -L$$(SYSLIB)/devlibs -lWriteOut
 INCLUDEPATH = $$(SYSLIB)/devlibs/
}
linux* {
 #soll -L/home/user/devlibs ersetzen
 LIBS += -L$$(HOME_DIR)/devlibs -lWriteOut
 INCLUDEPATH = $$(HOME_DIR)/devlibs/
} 

Verfasst: 3. März 2009 09:38
von Christian81
Ich würde eher sagen Du liest nicht...

Code: Alles auswählen

To obtain the contents of an environment value when qmake is run, use the $$(...) operator:

 DESTDIR = $$(PWD)
 message(The project will be installed in $$DESTDIR)

Verfasst: 3. März 2009 09:44
von chrootdev
Jetzt hab ichs gecheckt, sorry, bin auf dem schlauch gestanden!

Danke!

Für alle die auch so auf dem schlauch stehen wie ich:

Vorhandene systemvariablen in $$() setzen, dann werden diese verwendet:

Bsp aus der doku, um das tmp verzeichnis von windows auszugeben:

Code: Alles auswählen

DESTDIR = $$(TMP)
message(The project will be installed in $$DESTDIR)
oder

Code: Alles auswählen

DESTDIR = $$(windir)
message(The project will be installed in $$DESTDIR)