【问题标题】:How to compile c++ code with system() function (MSVC)?如何使用 system() 函数 (MSVC) 编译 c++ 代码?
【发布时间】:2020-03-27 15:02:17
【问题描述】:

我正在尝试使用 c++ 编译带有 system() 函数的 c++ 文件。

void CodeGenerator::GenerateExe(ProgramNode* parsed_tree, std::string folder_path, std::string file_name)
{
    std::string cpp_name = folder_path + file_name + ".cpp";

    GenerateCppFile(parsed_tree, cpp_name);
    std::string command;
    command += "cl ";
    command += cpp_name + " /OUT ";
    command += folder_path;

    system(command.c_str());
}

我知道我可以在开发人员 cmd 中执行此操作,但 system() 函数会打开常规 cmd,因此它无法识别“cl”命令。

请告诉如何打开开发者 cmd 或如何设置环境以通过 c++ 编译代码。

【问题讨论】:

  • cl.exe 必须在路径中才能运行。您还需要使用 vcvarsall.bat 设置环境(这是您在 Visual Studio 中打开开发人员命令提示符时执行的那个)
  • 你首先需要知道 CL.exe 的路径,而不是使用 system 而是 CreateProcessW

标签: c++ windows visual-studio


【解决方案1】:

您可以通过将cl的路径添加到环境变量中来做到这一点:

可以这样做:

  • 打开运行窗口,您可以通过在搜索中输入run 来完成此操作。
  • 输入sysdm.cpl
  • 选择高级分隔符
  • 点击环境变量
  • 在系统变量中选择path并点击edit
  • 单击new 并添加cl 命令的路径。就我而言,cl.exe 文件位于

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\bin\Hostx64\x64

变化不大,但您必须在您的机器中使用正确的路径。

  • 在此之后,您必须打开一个新的 cmd 窗口以检测更改并从您计算机的任何位置运行 cl 命令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 2012-02-17
    • 2020-08-19
    • 2020-06-03
    • 1970-01-01
    • 2020-03-27
    相关资源
    最近更新 更多