包编译动态库加载错误

时间:2015-08-16 18:23:18

标签: c++ r rcpp

我使用Rcpp在R中包装一个小的c ++程序,我事先检查过c ++代码是直接用g ++ 4.8.4编译的,没有警告或错误。没有外部图书馆,只使用STL。

当我使用devtools在RStudio中编译我的包时,我得到以下错误:


Updating PerseusR documentation
Loading PerseusR
Error in dyn.load(dllfile) : 
  unable to load shared object '/home/leonid/Documents/Programmation/PerseusR project/PerseusR/src/PerseusR.so':
  /home/leonid/Documents/Programmation/PerseusR project/PerseusR/src/PerseusR.so: undefined symbol: _Z9lexicoPoslllRSt6vectorIlSaIlEE
Calls: suppressPackageStartupMessages ...  -> load_all -> load_dll -> library.dynam2 -> dyn.load
Execution halted

Exited with status 1.

似乎编译很好,加载一些动态库时出现问题。 在未定义的符号中,lexicoPos是c ++代码中函数的名称。

关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:3)

如果你的本土尝试失败,我建议你从一个创建的例子开始:调用i = 0 for a in data_list: if i == Enum.check_name(skill): print(a[1]) i += 1 并将它创建的所有文件与你拥有的文件进行比较。

也许您忘记了Rcpp.package.skeleton()中所需的行,也许是某些内容 - 我们无法从您提供的信息中辨别出来。