我使用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 ++代码中函数的名称。
关于如何解决这个问题的任何想法?
答案 0 :(得分:3)
如果你的本土尝试失败,我建议你从一个创建的例子开始:调用i = 0
for a in data_list:
if i == Enum.check_name(skill):
print(a[1])
i += 1
并将它创建的所有文件与你拥有的文件进行比较。
也许您忘记了Rcpp.package.skeleton()
中所需的行,也许是某些内容 - 我们无法从您提供的信息中辨别出来。