如何使用 system() 函数 (MSVC) 编译 c++ 代码?
Posted
技术标签:
【中文标题】如何使用 system() 函数 (MSVC) 编译 c++ 代码?【英文标题】:How to compile c++ code with system() function (MSVC)? 【发布时间】: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 【参考方案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
命令。
【讨论】:
以上是关于如何使用 system() 函数 (MSVC) 编译 c++ 代码?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 MSVC 在 C++ 中定义外部 C 结构返回函数?
g++ , msvc 2015,2017System: Windows
如何在 MSVC++6 中声明 IEEE 数学函数,如“ilogbf”?