Как проверить наличие переменных среды во время компиляции в Visual Studio 2017 C ++? - PullRequest
0 голосов
/ 24 января 2019

Я хотел бы проверить во время компиляции, существует ли переменная окружения, и я не могу найти способ сделать это.

Причина заключается в возможности сопровождения кода: я использую QT и создал переменную среды, которая указывает на корневой каталог установки, который будет использоваться для ссылки на заголовки и библиотеки. Поэтому, когда спустя несколько лет я или мой коллега проверили проект и попытались скомпилировать его, я хочу выдать пользовательское подробное сообщение об ошибке в виде please install QT version XYZ and create environment variable QT_PATH to point at the root directory.

Я знаю, что файл readme является правильным способом сделать это, и я тоже создаю его, но я все еще хочу знать, возможно ли вообще проверять наличие переменных среды во время компиляции.

Самое близкое, что я получил до сих пор, это использование определения препроцессора QT_INSTALLATION_PATH=$(QT_PATH); и проверка его с помощью

#if QT_INSTALLATION_PATH == '\0'
#error "..."
#endif

, который выдает ошибку expression expected, если QT_PATH не существует, и работает нормально, если он существует.

1 Ответ

0 голосов
/ 24 января 2019

Правильный способ сделать это - использовать генераторы Visual Studio, которые будут выполнять эти проверки за вас до времени компиляции.

Например, CMake делает это действительно хорошо и может выбирать определенные версии Qt или OpenCV.Сам Qt поставляется с QMake, но я предлагаю вам нацелиться на общий генератор (не уверен, что QMake поддерживает OpenCV), то есть CMake.

...