gpt4 book ai didi

c++ - 使用 VC++ 编译生成的 C++ 代码

转载 作者:行者123 更新时间:2023-11-30 05:18:18 31 4
gpt4 key购买 nike

我需要编写一个生成c++代码的程序,编译并运行它,所以我完成了代码生成部分,并将其写入名为GeneratedCode.cpp 的文件中。现在我停留在编译部分,我写道:

system(R"(call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat")");
system(R"(call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvars32.bat")");
system("cl GeneratedCode.cpp");

首先,这是正确的做法吗?关于这个主题的信息非常少,尤其是对于 VC++。如果是,那么无论是否使用 IDE,我都会遇到问题。

当使用 IDE 时,它会给我:“GeneratedCode.cpp(2): fatal error C1034:iostream:未设置包含路径”。我当然在使用 iostream header 。

当直接运行 exe 时,它​​给我:“'cl' 不是内部或外部命令,也不是可运行的程序或批处理文件”。尽管我调用了 vcvarsall.bat 和 vcvars32.bat。

最佳答案

每次调用 system_wsystem 都会创建一个新环境,当调用终止时该环境会丢失。如果您的程序需要设置环境变量,例如 Visual C++ 命令提示符的 LIBINCLUDE 等,那么调用 system 将不会成功 多次。

以下是您的选择,按照我推荐的顺序排列:

  1. 一起避开system。为 cl.exe 设置所需的环境 block 以使用字符串连接函数正常工作,如 here 所示。 , 并调用 CreateProcess在那种环境下。
  2. 让您的程序编写一个批处理文件,其中包含使 cl.exe 正常工作的所有先决条件命令,对其调用 system,然后删除该批处理文件。
  3. 将命令与 && 链接在一起,并使用包含多个命令的大字符串调用一次 system

关于c++ - 使用 VC++ 编译生成的 C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41781361/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com