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

使用Rcpp编写C++函数时出现找不到main函数的报错求助

问题原因及解决方法

为什么找不到main()函数?

  • Rcpp仅会将带有// [[Rcpp::export]]标记的C++函数暴露给R,你的main()函数没有添加该标记,因此R无法识别它。
  • 更核心的是:在Rcpp的工作逻辑里,不需要编写main()函数。R本身就是运行的主进程,我们只需要导出要在R中调用的功能函数即可,无需像独立C++程序那样定义入口点main()。

修正后的代码

#include <Rcpp.h>

// [[Rcpp::export]]
int addition(int a, int b) { 
  int r = a + b;
  return r;
}

/*** R
# 直接调用导出的addition函数
result <- addition(3, 5)
cat("The result is", result, "\n")
*/

关键修改说明

  • 移除了不必要的<iostream>头文件和using namespace std,因为我们不需要用cout输出结果,而是将计算结果返回给R处理。
  • 删除了main()函数,改用R代码直接调用导出的addition函数完成测试。
  • 简化了addition函数的变量初始化写法,让代码更简洁。

修改后运行sourceCpp()即可正常执行,R会调用addition(3,5)并输出计算结果。

内容的提问来源于stack exchange,提问作者Alison

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 11:24:54