【问题标题】:Compile c++ code from source c++ file in windows using System() in Visual Studio在 Visual Studio 中使用 System() 从 Windows 中的源 c++ 文件编译 c++ 代码
【发布时间】:2016-07-15 15:44:06
【问题描述】:

当我使用 VS2012 的开发人员命令提示符并键入时

cl myProgram.cpp

编译成功, 但是,现在我想从 mySourceCode.cpp

的源代码中编译同一个文件

使用

system("cl myProgram.c");

当我尝试时,我得到以下错误

致命错误 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);
}

【问题讨论】:

  • 谢谢,这可能是一个好的开始。我可能是错的,但我怀疑当我调用系统时,VS2012 使用命令提示符而不是使用“\Program Files (x86)\Microsoft Visual Studio 8\vc\bin\vcvars32 设置环境变量的开发人员命令提示符” 。蝙蝠。”还没有弄清楚如何调和这些

标签: c++ windows visual-studio-2012 system


【解决方案1】:

当我使用 VS2012 的开发者命令提示符时...编译成功

这应该是给你的一个提示。看看“VS2012 的命令提示符”链接是什么 - %comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat"" amd64 即它启动 vcvarsall.bat 文件。现在看看.bat 在做什么——它使用参数和其他.bat 文件来设置成功执行编译所需的一堆环境变量,例如包含路径、库路径等。

当您调用system 时,大多数环境变量都没有在system() 调用创建的进程中设置。如果你想从你的程序中执行编译,你有很多不同的方法。例如,创建一个您将启动的.bat 文件,或者使用CreateProcess 函数创建一个具有适当环境的进程

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-02
    • 1970-01-01
    • 2016-10-20
    • 2011-03-04
    • 2012-03-13
    • 1970-01-01
    • 2014-05-24
    • 2019-04-26
    相关资源
    最近更新 更多