在Windows中工作,我创建了一个r包,它链接到c ++ dll作为共享库.这工作正常,并在Windows上安装没有问题.但是,当我切换到Linux时,找不到它.
我是否认为src目录中唯一的文件应该是.cpp文件?
在创建包之前,我是否真的需要在该目录中运行SHLIB命令?
在NAMESPACE我使用:
useDynLib(myc.cpp,my.c.function)
Run Code Online (Sandbox Code Playgroud)
并在函数调用中:
my.r.f <- .Call(my.c.function, a, b)
Run Code Online (Sandbox Code Playgroud)
在运行R CMD的Windows上检查工作正常.难道这是我的Linux R配置吗?它似乎安装第三方包很好.
我很难过!
我认为你应该使用useDynLib(myc)...符号查找是在内部完成的。
编辑:另一件事是这个目标文件的名称——我认为标准 makefile 只是用包名称来命名它,所以它应该是useDynLib(<package name>). 至少它总是对我有用。