Что означает $ENV
в CMake? Например:
set(BOOST_ROOT $ENV{HOME}/dev/cpp/thirdparty/boost)
1 ответ
$ENV
используется для получения значения переменной среды [1] .
В вашем примере $ENV{HOME}
получит значение переменной среды $HOME
. Допустим, $HOME
имеет значение /home/wls
. Запуск показанного фрагмента установит для переменной CMake BOOST_ROOT
значение /home/wls/dev/cpp/thirdparty/boost
.
$ENV
не ограничивается использованием с $HOME
. Вы можете использовать его для любой доступной переменной среды.
Обратите внимание, что есть ENV
, который также используется с set()
. Обратите внимание, что этот ENV
не то же самое, что $ENV
. ENV
обычно используется в set()
следующим образом:
set(ENV{<variable>} [<value>])
ENV
в вышеупомянутом контексте используется для обозначения того, что переменная, значение которой вы устанавливаете, является переменной среды. Как сказано в документации для set()
[2] , изменение переменной среды таким образом повлияет на результирующее значение последующих чтений этой переменной с использованием $ENV
.
Ссылки:
- [1] https://cmake.org/cmake/help/latest/variable /ENV.html
- [2] https://cmake.org/cmake /help/latest/command/set.html#set-environment-variable
Похожие вопросы
Новые вопросы
c++
C ++ - это язык программирования общего назначения. Первоначально он был разработан как расширение C и имеет аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде (который должен быть) скомпилирован с помощью компилятора C ++. Используйте тег для конкретной версии для вопросов, связанных с конкретной версией стандарта [C ++ 11], [C ++ 14], [C ++ 17], [C ++ 20] или [C ++ 23] и т. Д. .