小编fla*_*pix的帖子

Rcpp - sourceCpp - 未定义符号

我正在使用 Rcpp 将自己编写的 C++ 导入 R。

我有以下 3 个 C++ 文件

头文件.h

#include <Rcpp.h>
int x();
Run Code Online (Sandbox Code Playgroud)

定义文件

#include <Rcpp.h>
#include "header.h"
// [[Rcpp::export]]
int x()
{
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

调用.cpp

#include <Rcpp.h>
#include "header.h"

// [[Rcpp::export]]
int callx(){
  return x();
}
Run Code Online (Sandbox Code Playgroud)

成功编译后,我可以调用该函数callx()以及x()从 R

R> callx()
[1] 0
R> x()
[1] 0
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用文件 call.cppcppSource获取文件时,我收到此错误

> Rcpp::sourceCpp('src/call.cpp')
Error in dyn.load("/tmp/RtmpNpOnpJ/sourceCpp-x86_64-pc-linux-gnu-0.12.16/sourcecpp_3a47f828d0d/sourceCpp_2.so") :
unable to load shared object '/tmp/RtmpNpOnpJ/sourceCpp-x86_64-pc-linux-gnu-0.12.16/sourcecpp_3a47f828d0d/sourceCpp_2.so':
/tmp/RtmpNpOnpJ/sourceCpp-x86_64-pc-linux-gnu
0.12.16/sourcecpp_3a47f828d0d/sourceCpp_2.so: undefined symbol: _Z1xv
Run Code Online (Sandbox Code Playgroud)

对于编译,我使用R CMD …

c++ r rcpp

2
推荐指数
1
解决办法
1153
查看次数

标签 统计

c++ ×1

r ×1

rcpp ×1