Как установить переменные среды в Visual Studio 2017 RC1 с помощью CMake?

Я использую Visual Studio 2017 RC1 для загрузки проекта CMake (C++) с помощью новой функции «Открыть папку» и пытаюсь установить переменные среды для двоичного файла при запуске.

Поскольку при использовании Открыть папку больше нет файла решения, способ использования диалога отладки до VS-2017 здесь не подходит.

Что я пробовал до сих пор:

  • Использование простого проекта Hello World с одним исходным файлом
  • Щелкните правой кнопкой мыши соответствующий файл C++ в обозревателе решений и выберите «Параметры отладки и запуска».
  • Добавил туда env: {}, что должно дать программе Hello World пустое окружение

Снимок экрана обозревателя решений и файла launch.vs.json

Однако, если я попытаюсь запустить двоичный файл, появится всплывающее окно с сообщением «Объект должен реализовать IConvertible», и двоичный файл не запустится. Однако он отлично работает, если пропустить env: {}. Я также пытался добавить что-то в env, но эффект остается прежним. Изменение рабочего каталога с помощью currentDir работает нормально, поэтому я предполагаю, что launch.vs.json по крайней мере читается и используется.

Поскольку документация по этому вопросу кажется довольно скудной, я не уверен, что это даже предполагаемый способ установки переменных среды при использовании интеграции CMake VS 2017.


person jth    schedule 12.12.2016    source источник
comment
Я сделал еще один шаг: очевидно, это должна быть строка, поэтому env: FOO=BAR работает. Следующий вопрос: как установить более одной переменной среды?   -  person user7155    schedule 18.03.2017


Ответы (1)


Чтобы установить несколько переменных среды для VS 2017 с помощью CMake, используйте \u0000 в качестве разделителя. Например, поместив их в свой launch.vs.json, вы установите 2 переменные среды VAR1=USA и VAR2=JAPAN.

{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
      "type": "default",
      "name": "main.cpp",
      "project": "src\\main.cpp",
      "env": "VAR1=USA\u0000VAR2=JAPAN" 
    }
  ]
}
person Kien Truong    schedule 26.10.2017