如何使用CMake在Visual Studio 2017 RC1中设置环境变量?

5
我正在使用Visual Studio 2017 RC1加载一个CMake项目(C ++),使用新的“打开文件夹”功能,并尝试在启动时为二进制文件设置环境变量。
由于使用“打开文件夹”时不再有解决方案文件,因此以前的VS-2017方式使用调试对话框似乎在这里不可行。
到目前为止我尝试过:
  • 使用一个简单的Hello World项目,只有一个源文件
  • 在解决方案资源管理器中右键单击相应的C ++文件,选择“调试和启动设置
  • 在那里添加了env:{},这应该给Hello World程序一个空环境

解决方案资源管理器和launch.vs.json的屏幕截图

然而,如果我尝试运行二进制文件,会弹出一个窗口,显示“对象必须实现IConvertible”,二进制文件无法运行。当省略env: {}时,它可以正常工作。我也尝试添加一些内容到env中,但效果仍然相同。使用currentDir更改工作目录可以正常工作,因此我认为launch.vs.json至少被读取和使用了。

由于关于这方面的文档非常稀少,我不确定这是否是使用VS 2017 CMake集成时设置环境变量的预期方式。


我又向前迈进了一步:显然它必须是一个字符串,所以"env": "FOO=BAR"可以工作。下一个问题是,如何设置多个环境变量? - user7155
1个回答

2
为了在使用CMake时为VS 2017设置多个环境变量,请使用\u0000作为分隔符。例如,将以下内容放入您的launch.vs.json文件中将设置2个环境变量:VAR1=USAVAR2=JAPAN
{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
      "type": "default",
      "name": "main.cpp",
      "project": "src\\main.cpp",
      "env": "VAR1=USA\u0000VAR2=JAPAN" 
    }
  ]
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接