我使用Visual Studio 2012,我想从我自己的程序中编译 hello.cpp 文件。 这是代码:
#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;
string exec(char* cmd)
{
FILE* pipe = _popen(cmd, "r");
if (!pipe) return "ERROR";
char buffer[128];
string result = "";
while(!feof(pipe))
{
if(fgets(buffer, 128, pipe) != NULL)
result += buffer;
}
_pclose(pipe);
return result;
}
int main()
{
//ERROR: Cannot determine the location of the VS installation.
string res = exec("cd C:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\VC && vcvarsall");
cout<<res<<endl;
system("pause");
return 0;
}
我得到:无法确定VS安装的位置。
问题是 vcvarsall.bat 找不到一些环境变量。
当我从cmd或.bat运行它时,一切正常。
这是工作.bat:
call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall"
D:
cl hello.cpp
我该怎么办?感谢。