You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Heroku平台使用compile-run包编译运行C、C++等多语言代码?

解决方案

1. 配置多Buildpack构建环境

Heroku 默认仅会为应用加载主运行环境对应的 Buildpack,你需要的 C/C++ 编译器、Python 运行时等依赖默认未预装,需手动添加官方 Buildpack:

  • 进入 Heroku 应用后台的「Settings」页面,下滑找到「Buildpacks」配置区
  • 按从上到下的顺序添加以下 Buildpack:
    • 要安装 C/C++ 编译套件,先添加 heroku-buildpack-apt
    • 要支持 Python 代码运行,添加官方 heroku/python Buildpack
    • 主运行环境为 Node.js 的话,确认官方 heroku/nodejs Buildpack 放在列表最后一位

Buildpack 按从上到下的顺序执行,主运行环境对应的 Buildpack 必须放在末尾。

2. 配置系统依赖安装清单

添加 apt Buildpack 后,在项目根目录新建名为 Aptfile 的文件,写入需要安装的编译运行工具:

gcc
g++
python3
nodejs

部署时 Heroku 会自动从 apt 源安装上述依赖到系统路径。

3. 显式指定compile-run的可执行文件路径

Heroku 容器内的可执行文件路径和本地环境不同,调用 compile-run 时必须传入全路径参数,避免找不到编译器的报错:

  • C 编译器路径:/usr/bin/gcc
  • C++ 编译器路径:/usr/bin/g++
  • Python 解释器路径:/usr/bin/python3
  • JavaScript 运行时路径:/usr/bin/node

以下是 Node.js 环境下的调用示例:

const { compile, run } = require('compile-run');

// C代码编译调用示例
const cRes = await compile.c('待编译的C代码内容', {
  compilerPath: '/usr/bin/gcc'
});

// Python代码运行调用示例
const pyRes = await run.python('待运行的Python代码内容', {
  executionPath: '/usr/bin/python3'
});

4. 验证与适配调整

  • 部署完成后可以执行 heroku run bash 进入运行容器,用 which gcc、which python3 等命令确认可执行文件的实际路径,如果和上述路径不一致,用实际查询到的路径替换即可
  • Heroku dyno 有默认运行时长和内存限制,编译/运行耗时过长的代码会被强制终止,需要自行调整接口超时参数适配平台限制

内容的提问来源于stack exchange,提问作者Competitive Fight Club

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 16:36:01