使用C#的代码编译器接口
本文关键字:编译器 接口 代码 使用 | 更新日期: 2023-09-27 18:19:29
我想写一个程序或类,它可以使用安装的GCC编译器编译cpp代码,如果出现编译错误:请报告它们。
如果没有错误,则运行可执行文件,向该程序发送输入并从中获取输出,然后将输出用于其他计算。
我的解决方案是使用.net Process
类并调用CMD
和。。。。但是有没有更好的方法或更好的.net组件来编写这个程序?
除了使用Process调用命令行编译器外,您还可以使用MSBuild来执行构建脚本。其优点是,用户可以制作和更改自己的构建脚本,而无需对应用程序进行任何更改。任何编译器都可以插入MSBuild脚本,错误和警告的输出都是标准化的,因此您可以轻松地进行解析。MSBuild附带了一个使用.Net的运行时。有关示例,请参阅此处和此处(已弃用)。这也是Visual Studio的工作原理。项目文件是msbuild脚本。
您提供的解决方案相当不错。Sibscript到GCC输出并读取CCD_ 3&warns
。
根据您将要使用的体系结构,您可以考虑使用VS安装包中的devenv.com
二进制文件。使用它可以直接编译projects
或solution
。不太清楚这是否是你需要的,但顺便说一句,这是另一个需要考虑的选择。
对于GCC,基本上就是这样,没有花哨的解决方案。
如果你想编译MS C++(我想是托管C++,但我不确定),你可以利用CodeDomProvider。
你可以在这里找到CPP文档
关于如何基于CSharpProvider使用它的工作示例,可以在这里找到