[英]Compiling a .cpp file from the body of another .cpp file
我一直在使用Microsoft Visual Studio 2010命令提示符来编译原始.cpp文件并分析其输出的应用程序。 我遇到了很多麻烦,而且在线上似乎没有太多内容。 这是麻烦的代码:
#include <iostream>
using namespace std;
...
string name = "cl /EHsc ";
name += "example.cpp";
system("setupcppenv.bat"); // A short batch file I wrote to launch the VC++ cmd prompt without launching another instance of cmd
system(name.c_str());
当我执行(尝试编译example.cpp)时,出现错误:
严重错误C1043:iostream:没有包含路径集
我对批处理文件或使用命令提示符编译器不是很有经验。 我究竟做错了什么?!
另外,有没有其他方法可以从应用程序内部进行编译?
谢谢!
每个system()
调用都会调用一个单独的进程,因此,在该进程结束后,您在setupcppenv.bat
文件中设置的所有环境变量都将被丢弃。
您应该做的是,将您在.bat文件中设置的环境变量添加到系统环境中,或者至少添加到您启动应用程序的cmd实例的环境中,以便它们被进程继承由system()
调用启动。
我不知道setupcppenv.bat
什么,我想您正在对该批处理文件中的环境变量进行更改。 发生的事情是,当批处理脚本结束时,那些环境变量更改丢失了,因为它们仅限于批处理脚本的过程以及该过程的所有子级。
设置将起作用的环境变量的一种方法是在程序中使用setenv()
或putenv()
函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.