[gelöst] Libraries + includepath

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
chrootdev
Beiträge: 70
Registriert: 18. April 2008 17:52

[gelöst] Libraries + includepath

Beitrag 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
Zuletzt geändert von chrootdev am 3. März 2009 09:44, insgesamt 1-mal geändert.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Beim Include musst Du es nicht angeben, aber INCLUDEPATH ist falsch --> http://doc.trolltech.com/4.4/qmake-vari ... ncludepath
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
chrootdev
Beiträge: 70
Registriert: 18. April 2008 17:52

Beitrag 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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Man kann auf Umgebungsvariablen verweisen, aber die sind unter Windows und Linux nicht gleich --

Code: Alles auswählen

win* {
  ...
} 
linux* {
  ...
}
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
chrootdev
Beiträge: 70
Registriert: 18. April 2008 17:52

Beitrag 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!
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
chrootdev
Beiträge: 70
Registriert: 18. April 2008 17:52

Beitrag 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/
} 
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
chrootdev
Beiträge: 70
Registriert: 18. April 2008 17:52

Beitrag 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)
Antworten