使用C#的代码编译器接口

本文关键字:编译器 接口 代码 使用 | 更新日期: 2023-09-27 18:19:29

我想写一个程序或类,它可以使用安装的GCC编译器编译cpp代码,如果出现编译错误:请报告它们。

如果没有错误,则运行可执行文件,向该程序发送输入并从中获取输出,然后将输出用于其他计算。

我的解决方案是使用.net Process类并调用CMD和。。。。但是有没有更好的方法或更好的.net组件来编写这个程序?

使用C#的代码编译器接口

除了使用Process调用命令行编译器外,您还可以使用MSBuild来执行构建脚本。其优点是,用户可以制作和更改自己的构建脚本,而无需对应用程序进行任何更改。任何编译器都可以插入MSBuild脚本,错误和警告的输出都是标准化的,因此您可以轻松地进行解析。MSBuild附带了一个使用.Net的运行时。有关示例,请参阅此处和此处(已弃用)。这也是Visual Studio的工作原理。项目文件是msbuild脚本。

您提供的解决方案相当不错。Sibscript到GCC输出并读取CCD_ 3&warns

根据您将要使用的体系结构,您可以考虑使用VS安装包中的devenv.com二进制文件。使用它可以直接编译projectssolution。不太清楚这是否是你需要的,但顺便说一句,这是另一个需要考虑的选择。

对于GCC,基本上就是这样,没有花哨的解决方案。

如果你想编译MS C++(我想是托管C++,但我不确定),你可以利用CodeDomProvider。

你可以在这里找到CPP文档

关于如何基于CSharpProvider使用它的工作示例,可以在这里找到