Установить путь включения со значением переменной среды

Мы пытаемся использовать библиотеку MITK с Qt в Linux.

К сожалению, MITK не имеет функции установки, а также зависит от ITK и VTK. Таким образом, мы получаем заголовочные файлы, разбросанные по многим каталогам.

Мы хотели бы указать список каталогов для добавления в путь включения в переменной среды следующим образом: INCPATH+=$MITK_INCLUDE_PATH. Но это, кажется, не работает.

Как мы могли этого добиться? Есть ли способ лучше?


person chmike    schedule 17.07.2009    source источник


Ответы (4)


Только что нашел решение сам. Хотя я дал балл Айдосу и cjhuitt за их ответы, которые указали мне правильный путь и сэкономили мне драгоценное время. Отдельное спасибо за ссылку на документацию qmake.

Во-первых, я должен изменить файл .pro, а не возиться с расширенными аргументами сборки.

Чтобы получить содержимое переменной среды при обработке qmake, следует использовать следующий синтаксис

INCLUDEPATH += $$(MITK_INCLUDE_PATH)

Обратите внимание, что для получения содержимого переменной среды при обработке make следует использовать следующий синтаксис.

ВКЛЮЧИТЬПУТЬ += $(MITK_INCLUDE_PATH)

Но это не будет иметь такого же эффекта, если переменная среды содержит несколько путей. Тогда предпочтительнее первая форма.

Пути в переменной среды должны быть разделены пробелами, потому что ; не признается.

Если путь содержит пробелы, заключите его в кавычки. Пробелы между кавычками будут заменены на «\».

person chmike    schedule 18.07.2009
comment
если у вас есть список каталогов в вашей переменной окружения, разделенных символом ';' , вы можете использовать что-то вроде этого (не проверено): INCLUDEPATH += replace($$(MITK_INCLUDE_PATH), ;, ) - person Florian; 19.07.2009
comment
Что, если я захочу включить что-то вроде этого $HOME/x/y/z? - person qed; 27.02.2014

Вы пробовали добавить:

INCLUDEPATH += <the path to the MITK headers>

в файле .pro вашего проекта?

И, возможно, вам также потребуется отредактировать LIBS и DEPENDPATH.

См. Руководство по QMake.

person Florian    schedule 17.07.2009
comment
Это работает, если я скопирую список каталогов. Можно ли сделать то же самое с переменной окружения? - person chmike; 17.07.2009

Я думаю, что есть более чистый способ сделать это, но я не могу вспомнить. В любом случае, вы можете использовать директиву system:

INCLUDEPATH += $$system( echo $MITK_INCLUDE_PATH )

Вы также можете добавить его в зависимый путь:

DEPENDPATH += $$system( echo $MITK_INCLUDE_PATH )
person Caleb Huitt - cjhuitt    schedule 17.07.2009

я не знаю, но, может быть, вы можете попробовать написать как

INCPATH+=%MITK_INCLUDE_PATH%

в винде вообще так..

но я не пробовал.

person ufukgun    schedule 17.07.2009
comment
На самом деле это тоже не работает в Windows (по крайней мере, у меня это не сработало). - person Saulius Žemaitaitis; 20.07.2009