如何使用另一个 C++ 程序编译 C++ 代码?

Posted

技术标签:

【中文标题】如何使用另一个 C++ 程序编译 C++ 代码?【英文标题】:How can I compile C++ code using another C++ program? 【发布时间】:2010-09-02 15:12:31 【问题描述】:

我想创建一个程序来修改另一个 c++ 源,编译它并运行 exe。 我的意思是像 gcc 这样的东西我可以,但在 Windows 操作系统上 gcc 可能不存在。 有可能吗?

【问题讨论】:

如果你把编译器打包成你的应用程序的一部分(事实上是这样)......可行吗? 这是可能的,但我不喜欢这种变体。但它似乎是 Windows 上的唯一方法...... 我认为对于像 Windows 这样的平台,遗憾的是,您无法确保编译器是否可用。 你也不能确定 *nix 上有编译器。 如果你的程序应该是自包含的(从某种意义上说,一些 Java 开发环境可以生成基本上包含完整的 Java 运行时的可执行文件),我的直觉是虚拟机可能是唯一的方法去。或者,也许您可​​以压缩开发环境(库、头文件、预处理器、编译器、链接器)并将其解压缩到目标上作为安装的一部分。 (似乎也是赫利俄斯的想法。) 【参考方案1】:

我认为您的 Windows 选项相当有限:

    检查编译器的安装(可能将其限制在一个简短的列表中)并使用该编译器 在应用程序的安装包中附带编译器

【讨论】:

【参考方案2】:

牛仔回答

仅当:

源代码不需要很多文件/头文件/库 您的应用程序可以轻松收集它们 应用程序已与您的某些服务器建立连接

应用程序可以:

以 zip 格式收集文件 通过网络将它们发送到编译器服务(可通过 HTTP 访问) 服务器使用自己的安装编译它 并在响应中返回二进制可执行文件。

当然:它依赖于这么多看起来不太可行的变量。而 zip+http 的事情对于 C/C++ 应用程序来说可能很困难。

【讨论】:

嗯,它可能很慢......而且它取决于互联网连接。但这是个有趣的想法;) 谢谢...无论如何我正在考虑它并意识到在 C 中管理 zip 和 http...它不是那么好...:S 您可以(应该)为这类事情获取图书馆。即便如此,它也会比某些语言做更多的工作。碰巧我过去已经实现了 HTTP 客户端和 zip 文件编写器库:不是用 C 语言,而是用一种大致相同级别的语言,所以我坐在 zlib 和伯克利风格的套接字接口之上。我真的不推荐它,对于一个非常简单的 http 客户端来说,这并不是那么困难,只是非常乏味。改用 libcurl 和 libtar(tar,因为压缩在这里实际上并不是必需的,所以保持简单)... 这个想法真的很棒。并且一些互联网(嗯,局域网)连接比磁盘访问更快。

以上是关于如何使用另一个 C++ 程序编译 C++ 代码?的主要内容,如果未能解决你的问题,请参考以下文章

如何用XCode创建Objective-c和C++的混编工程?

如何从 C++ 代码引发事件并在另一个进程的 C# 代码中调用处理程序?

如何用命令行编译c++程序

如何使用 C# 编译 C++ 代码。需要开发 C++ IDE [关闭]

如何在网页上运行 C++ 应用程序?

如何用visual studio2012编c++程序?