2009-07-17 8 views
8

Nous essayons d'utiliser la bibliothèque MITK avec Qt sous Linux.Définir le chemin d'inclusion avec la valeur de variable d'environnement

Malheureusement MITK n'a pas de fonctionnalité d'installation et dépend aussi de ITK et VTK. Nous nous retrouvons donc avec des fichiers d'en-tête dispersés dans de nombreux répertoires.

Nous aimerions spécifier la liste des répertoires à ajouter dans le chemin d'inclusion dans une variable d'environnement comme ceci: INCPATH + = $ MITK_INCLUDE_PATH. Mais cela ne semble pas fonctionner.

Comment pourrions-nous y parvenir? Y a-t-il un meilleur moyen?

Répondre

11

Je viens de trouver moi-même la solution. Bien que j'aie accordé un point à Aidos et cjhuitt pour leurs réponses, cela m'a mis sur la bonne voie et m'a sauvé un temps précieux. Un merci spécial pour le lien vers la documentation de qmake.

Le premier point est que je devrais modifier le fichier .pro et ne pas manipuler les arguments de construction étendus.

Pour obtenir le contenu d'une variable d'environnement lorsque qmake est traité devrait utiliser la syntaxe suivante

INCLUDEPATH + = $$ (MITK_INCLUDE_PATH)

Notez que pour obtenir le contenu d'une variable d'environnement lorsque make est traitée on doit utiliser la syntaxe suivante

INCLUDEPATH + = $ (MITK_INCLUDE_PATH)

Mais ce ne sera pas le même effet si la variable d'environnement contient des chemins multiples. La première forme est alors préférable.

Les chemins dans la variable d'environnement doivent être séparés par des espaces car; n'est pas reconnu.

Si un chemin contient des espaces, placez des guillemets autour de celui-ci.Les espaces apparaissant entre les guillemets seront remplacés par '\'.

+1

si vous avez une liste de répertoires dans votre variable d'environnement séparés par ';' , vous pouvez utiliser quelque chose comme ceci (non testé): INCLUDEPATH + = remplacer ($$ (MITK_INCLUDE_PATH), ";", "") – Florian

+0

Et si je veux inclure quelque chose comme ceci '$ HOME/x/y/z'? – qed

0

je ne sais pas, mais peut-être que vous pouvez essayer d'écrire comme

INCPATH + =% MITK_INCLUDE_PATH%

dans les fenêtres, il est généralement comme ça ..

mais je n'ai pas essayé.

+0

C'est sur linux. – chmike

+0

En fait, cela ne fonctionne pas non plus sur les fenêtres (au moins cela n'a pas fonctionné pour moi). –

3

Avez-vous essayé d'ajouter:

INCLUDEPATH += <the path to the MITK headers>

dans le fichier .pro de votre projet?

Et peut-être vous aurez également besoin d'éditer LIBS et DEPENDPATH.

Voir QMake Manual

+0

Cela fonctionne si je copie passé la liste des répertoires. Est-il possible de faire de même avec une variable d'environnement? – chmike

3

Je pense qu'il ya un propre façon de faire, mais je ne me souviens pas. Quoi qu'il en soit, vous pouvez utiliser la directive system:

INCLUDEPATH += $$system(echo $MITK_INCLUDE_PATH) 

Vous pouvez également ajouter au chemin dépend:

DEPENDPATH += $$system(echo $MITK_INCLUDE_PATH) 
Questions connexes