在Windows中使用C++ DLL创建ar包并确保可移植到linux

Chr*_*don 5 r

在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配置吗?它似乎安装第三方包很好.

我很难过!

mbq*_*mbq 1

我认为你应该使用useDynLib(myc)...符号查找是在内部完成的。
编辑:另一件事是这个目标文件的名称——我认为标准 makefile 只是用包名称来命名它,所以它应该是useDynLib(<package name>). 至少它总是对我有用。