gpt4 book ai didi

c - 无法链接 Rcpp 的 cpp 文件中的相关头文件

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

基于本教程 - http://www.r-bloggers.com/using-r-callling-c-code-with-rcpp/我试图从 R 调用 C 函数。C代码有以下依赖,编译C代码后完美运行

#include <json/json.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <curl/curl.h>
#include <time.h>
#include <math.h>
#include <Rcpp.h>

现在,当我尝试加载 so 文件时,我看到以下错误。

dyn.load("storage.so")
Error in dyn.load("storage.so") :
unable to load shared object '/home/algotree/Rcode/storage.so':
/home/algotree/Rcode/storage.so: undefined symbol: json_object_array_length

似乎 R 无法链接其余的头文件。

我该如何解决?

最佳答案

这与Rcpp无关(为此我们还提供了关于单独使用、在包中、通过内联等使用的充足文档)。

您似乎使用了 JSON 解析功能,但显然没有链接到与您包含的 header json/json.h 相对应的 JSON 解析器库。

除了这个问题在其代码示例中不完整因此无法重现之外,我在这里看到两个问题:

  1. 了解有关使用库的 C/C++ 程序的基本知识,以及

  2. 将其应用于 R 上下文。

当您根据 header 使用 JSON 和 Curl 时,您可以(并且可能应该)研究相应的包,例如 RJSONIORCurl .

如果你知道那里发生了什么并且了解机制,那么你可以使用 Rcpp提供您正在寻找的新功能。但只是通过抛出 Rcpp在混合中,这些问题不会自行解决。您需要了解如何包含 header 和链接库。

关于c - 无法链接 Rcpp 的 cpp 文件中的相关头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13900955/

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