当我使用 VS2012 的开发人员命令提示符并键入
cl myProgram.cpp
编译成功, 但是,现在我想从 mySourceCode.cpp
中的源代码中编译同一个文件使用
system("cl myProgram.c");
当我尝试时出现以下错误
fatal error c1034:proccess.h:未设置包含路径
我想知道是否有一种方法可以在不更改任何环境变量的情况下从源代码中修复此问题?
我的源代码看起来像这样:mySourceCode.cpp
#include <iostream>
#include ...
int main()
{
//set up code
...
system("cl myProgram.c");
}
我要编译的代码:myProgram.cpp
#include <proccess.h>
#include <windows.h>
#include <stdio.h>
int main()
{
//set up code
...
Sleep(10000);
}
最佳答案
When I use Developer Command Prompt for VS2012...It compiles successfully
这应该是给你的提示。看看“VS2012 的命令提示符”链接是什么 - %comspec%/k ""C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat""amd64
即它启动vcvarsall.bat
文件。现在看看 .bat
在做什么 - 它使用参数和其他 .bat
文件来设置成功执行编译所需的一堆环境变量,例如包含路径,库路径和其他。
当您调用 system
时,大多数环境变量都没有在 system()
调用创建的进程中设置。如果你想从你的程序中执行编译,你有很多不同的方法。例如,创建您将启动的 .bat
文件,或使用 CreateProcess函数创建具有适当环境的进程
关于c++ - 在 Visual Studio 中使用 System() 在 Windows 中从源 C++ 文件编译 C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38400195/