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

标签 visual-c++ cmake environment-variables visual-studio-2017

我正在使用 Visual Studio 2017 RC1使用新的“打开文件夹”功能加载 CMake 项目 (C++),并尝试在启动时为二进制文件设置环境变量。

由于使用 Open Folder 时不再有解决方案文件,因此在 VS-2017 之前使用调试对话框的方式似乎不是一种选择。

到目前为止我尝试过的:

  • 使用带有单个源文件的简单 Hello World 项目
  • 右键单击解决方案资源管理器中相应的 C++ 文件,选择“调试和启动设置”
  • 已添加 env: {}在那里,这应该给 Hello World 程序一个空的环境

  • Screenshot of Solution Explorer and launch.vs.json

    但是,如果我尝试运行二进制文件,则会出现一个弹出窗口,上面写着“ 对象必须实现 IConvertible ”并且二进制文件不会运行。省略 env: {} 时它工作正常, 尽管。我也尝试向 env 添加一些东西,但效果保持不变。使用 currentDir 更改工作目录工作正常,所以我假设 launch.vs.json至少被阅读和使用。

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

    最佳答案

    为了使用 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" 
        }
      ]
    }
    

    关于visual-c++ - 如何使用 CMake 在 Visual Studio 2017 RC1 中设置环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41094363/

    相关文章:

    c++ - 如何使用 Github Actions 中的 MSVC 编译器?

    c++ - typeinfo pragma 可见性错误

    python - 如何使用win环境变量 "pathlib"保存文件?

    c++ - 使用 ITK、openCV 和 Qt 的 CMake 程序 -> 如何获得包罗万象的 exe

    java - 如何在 java 运行时解析环境变量

    python - 一个环境变量可供 python 子进程使用,而另一个则不可用

    c++ - 无法从 NULL 资源创建 RenderTargetView

    c++ - 如何为 Ctags 无法处理的 MSVC 文件夹的所有 C++ 头文件生成标签文件?

    c++ - 为什么我收到错误消息 "subscript requires array or pointer type"我正在尝试读取我的数组以查看它是否是一个操作数

    c++ - 如何跳过 CMake 编译器识别?