gpt4 book ai didi

c++ - 如何在程序运行的同时生成并编译C++代码?

转载 作者:行者123 更新时间:2023-11-30 03:02:25 24 4
gpt4 key购买 nike

所以基本上我需要的不是特定的代码(当然那会很棒),而是关于如何实现我的目标的想法和方法。

1) 我必须在 C++ 中创建一个程序,它生成一个 C++ 代码的小示例,每次都有点不同。 (这对我来说没有问题,我将使用模板并随机化代码中的一些变量,这将使它每次都是独一无二的。)

2) 我将显示生成的代码,用户必须输入他认为代码打印出来的内容。

这就是问题的开始:

3) 我必须获取生成的代码并以某种方式对其进行编译以获取包含程序将打印出的文本的字符串。

4) 然后将字符串与用户输入的内容进行比较。

所以第 3 步是我停下来的地方,没有帮助就无法弄清楚......我想在 .cpp 文件的函数中编写生成的代码,然后调用该函数,但我不能'搞不定,所以我开始想,我应该请教专家,也许有一些其他的方法或想法如何实现这一点。

最佳答案

  1. 编写.cpp文件
  2. 调用编译器(或 make 或等效的构建系统)
  3. 如果编译失败,大概会显示错误吗?
  4. 如果编译成功,运行生成的程序并显示输出

将 2/3/4 包装到脚本中并使用 systempopen 调用它可能是最简单的。该脚本可以确保文件名是唯一的,将 stderr 折叠到 stdout 等。

您正在运行的程序并没有真正与编译代码交互,只是读取输出,因此将它作为一个单独的进程可能是最简单的。该脚本可以添加一些标记来帮助您区分编译器输出/错误与程序输出。


我已经很多年没有编写批处理文件了,但是一旦您知道如何从命令行 (ref) 运行编译器,您就可以编写一个脚本来:

  1. 编译.cpp文件
  2. 执行生成的 .exe
  3. 将其输出重定向到一个文件

然后,在 C++ 中,您只需将代码保存到脚本所需的 .cpp 文件中,执行脚本,如 system("myScript.bat"),然后读取输出文件。

如果您不想编写单独的批处理脚本,您可以只调用一次system 来调用编译器,然后再次执行生成的.exe

关于c++ - 如何在程序运行的同时生成并编译C++代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10173694/

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