【问题标题】:run c++ program on heroku在heroku上运行c++程序
【发布时间】:2018-05-31 15:41:36
【问题描述】:

我正在尝试在 Heroku 上运行一个 c++ 程序,我已经阅读了这篇文章:How to run an executable on Heroku from node, works locally 但是我没有设法让它工作,因为服务器上没有 g++(或 gcc) )。我尝试像sudo apt-get install g++ 那样将 g++ 下载到服务器上,但是我没有 root 权限。我也尝试将我的 g++ 副本复制到服务器,但我的 mac 的架构与服务器不同,因此也不起作用。显然,这是可能的,因为它已经在我上面链接的问题中得到了解决,但是我不知道该怎么做。任何帮助表示赞赏。谢谢。

【问题讨论】:

  • 如果无法在目标机器上编译,则需要交叉编译
  • 如何交叉编译?我知道架构是:Linux 4be8fe2c-2655-428c-a4ed-dd011dc871c4 4.4.0-1019-aws #19-Ubuntu SMP Thu May 3 15:08:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
  • 交叉编译很难。您可能更容易联系管理员并要求他们安装 g++,或者在云中启动您自己的具有相同分布和架构的临时服务器实例(或者甚至作为您机器上的 VM)并在那里编译.
  • 我让它工作了,我可以访问我学校的一台 linux 机器,所以我进入了它,在那里编译了我的代码,将它下载到我的 mac,上传到 heroku,然后它工作了

标签: c++ heroku


【解决方案1】:

有两种方法可以做到这一点。

使用 Heroku 的 buildpack api,您可以设置一个 buildpack,它会在构建应用程序时编译您的代码。

甚至还有一些可用的 C 构建包:https://github.com/heroku/heroku-buildpack-c

您也可以使用 Docker。您的 Dockerfile 将构建二进制文件。您可以在本地运行它,然后将其推送并发布到 Heroku。 见https://devcenter.heroku.com/articles/container-registry-and-runtime

【讨论】:

    【解决方案2】:

    如果有其他人尝试这样做,我通过在 linux 机器上编译它然后将可执行文件上传到 Heroku 来让它工作。所以假设一个人可以访问一台带有 g++ 的 linux 机器,这应该是可能的。

    【讨论】:

      猜你喜欢
      • 2015-01-05
      • 1970-01-01
      • 2011-11-04
      • 2016-05-17
      • 2012-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-30
      相关资源
      最近更新 更多