2009-07-17 9 views
8

Wir versuchen, die MITK-Bibliothek mit Qt unter Linux zu verwenden.Set-Include-Pfad mit Umgebungsvariablenwert

Leider hat MITK keine Installationsfunktionalität und es hängt auch von ITK und VTK ab. Also enden wir mit Header-Dateien, die in vielen Verzeichnissen verstreut sind.

Wir möchten die Liste der Verzeichnisse angeben, die im Include-Pfad in einer Umgebungsvariablen hinzugefügt werden: INCPATH + = $ MITK_INCLUDE_PATH. Aber das scheint nicht zu funktionieren.

Wie können wir das erreichen? Gibt es einen besseren Weg?

Antwort

11

Sie einfach die Lösung selbst herausgefunden. Obwohl ich Aidos und cjhuitt einen Punkt für ihre Antworten gegeben habe, die mich auf den richtigen Weg gebracht und mir wertvolle Zeit gespart haben. Ein besonderer Dank für den Link zur qmake-Dokumentation.

Der erste Punkt ist, dass ich die .pro-Datei ändern und nicht mit den erweiterten Build-Argumente geigen sollte.

Um den Inhalt einer Umgebungsvariablen zu erhalten, wenn Qmake sollte

die folgende Syntax verwenden INCLUDEPATH + = $$ (MITK_INCLUDE_PATH) ein verarbeitet

Hinweis, der den Inhalt einer Umgebungsvariablen zu erhalten, wenn make verarbeitet wird, sollte man die folgende Syntax

INCLUDEPATH + = $ (MITK_INCLUDE_PATH)

Aber dies wird nicht die gleiche Wirkung haben, wenn die Umgebungsvariable enthält mehrere Pfade verwenden. Die erste Form ist dann vorzuziehen.

Pfade in der Umgebungsvariablen müssen durch Leerzeichen getrennt sein, weil die; wird nicht erkannt.

Wenn ein Pfad Leerzeichen enthält, setzen Sie ihn in Anführungszeichen.Leerzeichen zwischen den Anführungszeichen werden durch '\' ersetzt.

+1

Wenn Sie eine Liste von Verzeichnissen in Ihrer Umgebungsvariablen haben, die durch ';' getrennt sind , Sie können so etwas verwenden (nicht getestet): INCLUDEPATH + = ersetzen ($$ (MITK_INCLUDE_PATH), ";", "") – Florian

+0

Was ist, wenn ich etwas wie diese hinzufügen möchte? $ HOME/x/y/z'? – qed

0

ich weiß nicht, aber vielleicht können Sie versuchen, wie

incpath + =% MITK_INCLUDE_PATH%

in Fenster zu schreiben, in der Regel ist es so, ..

aber ich versuche nicht.

+0

Es ist auf Linux. – chmike

+0

Eigentlich funktioniert es auch nicht bei Windows (zumindest funktionierte es bei mir nicht). –

3

Haben Sie versucht, das Hinzufügen:

INCLUDEPATH += <the path to the MITK headers>

in .pro-Datei des Projekts?

Und möglicherweise müssen Sie auch LIBS und DEPENDPATH bearbeiten.

Siehe QMake Manual

+0

Es funktioniert, wenn ich die Liste der Verzeichnisse kopieren. Ist es möglich, dasselbe mit einer Umgebungsvariablen zu tun? – chmike

3

Ich denke, es ist ein sauberer Weg, dies zu tun, aber ich kann mich nicht erinnern. Wie dem auch sei, könnten Sie die system Direktive verwenden:

INCLUDEPATH += $$system(echo $MITK_INCLUDE_PATH) 

Sie können auch hinzufügen, um es Weg zu hängen:

DEPENDPATH += $$system(echo $MITK_INCLUDE_PATH)