gpt4 book ai didi

c++ - 无法在 R 中加载 C 共享库

转载 作者:太空宇宙 更新时间:2023-11-04 08:38:39 25 4
gpt4 key购买 nike

我正在尝试调用 C 代码 double_metaphone.c来自 Windows 中的 R。我熟悉 R ,但还没有尝试过 C。

我已经编译代码并在 Windows 中使用 Cygwin gcc 创建了一个共享库,包括头文件 double_metaphone.h

gcc -c double_metaphone.c
gcc -shared -o double_metaphone.dll double_metaphone.o

我已经使用dyn.load加载dll文件如下

dyn.load("C:/R/double_metaphone.dll")

getLoadedDLLs() 列出 double_metaphone.dll,但是

is.loaded(double_metaphone.dll)

给出错误

Error in is.loaded(double_metaphone.dll) : 
object 'double_metaphone.dll' not found

当我尝试使用 .C().Call() 时,我得到了

Error in .C("double_metaphone") : 
C symbol name "double_metaphone" not in load table

我知道这是 C++ 代码的问题,如 Link1 , Link ,但为什么我不能访问用于从 R 调用 C 代码的共享库?我哪里错了?

最佳答案

根据我的理解,“is.loaded”检查加载的符号。根据您的 header ,您可以尝试:

is.loaded("DoubleMetaphone")

调用方法。尝试:

.C("DoubleMetaphone", <your>, <arguments>)

关于c++ - 无法在 R 中加载 C 共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24885375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com