【发布时间】:2020-08-02 00:13:21
【问题描述】:
我正在尝试从另一个 c++ 程序中编译生成的 cpp 文件。
首先(查看 cl 命令是否有效)我正在尝试使用来自 c++ 程序的 Visual Studio 命令行构建,如下所示:
命令("cl");
由于 c++ 命令提示符不是本机工具命令提示符,我首先调用:
command("C:"/Program Files (x86)/Microsoft Visual\Studio/2019/Community/VC/Auxiliary/Build/vcvars32.bat"");
这似乎执行得很好,具有预期的输出。但是,当我得到后进行 cl 调用时:
'cl' 未被识别为内部或外部命令。
这与我没有调用 vcvars32.bat 的预期错误相同。
如果我从常规命令提示符执行完全相同的过程,一切正常,但不是来自我的 Visual Studio 2019 C++ 17 项目中的 c++ 程序 cmd。
我对它不起作用并不感到惊讶,我认为 C++ 项目的环境有些不同,尽管成功调用 vcvars32.bat 不会以所需的方式设置环境变量.
有谁确切地知道这可能取决于什么以及(如果可能)如何解决它?或者,如果您对如何从另一个 c++ 程序编译 c++ 项目有任何其他想法?
【问题讨论】:
-
什么是
command()?我假设每个command都会启动新的 shell 实例,因此每次运行都会获得初始环境。 -
试试
C:"/Program Files (x86)/Microsoft Visual \ Studio/2019/Community/VC/Auxiliary/Build/vcvars32.bat" & cl ... -
谢谢你,这似乎奏效了!我假设该命令是在同一个 shell 中完成的,因为结果是在同一个 VS 项目命令提示符中编写的。
标签: c++ visual-studio environment-variables command-prompt cl