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

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

【问题讨论】:

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

标签: c++ windows gcc


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    牛仔回答

    仅当:

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

    应用程序可以:

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

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

    【讨论】:

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