小编Use*_*now的帖子

dyn.load(dllfile) 中的错误:无法加载共享对象 | 预期在:平面命名空间

我是 R 包开发的新手。我正在开发一个包 (bartpkg),它的src/文件夹中有一个 (prime) cpp 文件和一些辅助 cpp ( X.Cpp, Y.Cpp) 和一个 c 文件 ( Z.C) 及其头文件 ( X.h, Y.hand Z.h)

在 Rstudio 中执行“构建和重新加载”时出现以下错误。

Error in dyn.load(dllfile) :
  unable to load shared object '/Users/abcd/BART/bart_pkg1/src/bartpkg.so':
  dlopen(/Users/abcd/BART/bart_pkg1/src/bartpkg.so, 6): Symbol not found: __ZN3RNG4nfixElm
  Referenced from: /Users/abcd/BART/bart_pkg1/src/bartpkg.so
  Expected in: flat namespace
 in /Users/abcd/BART/bart_pkg1/src/bartpkg.so
Calls: suppressPackageStartupMessages ... <Anonymous> -> load_all -> load_dll -> library.dynam2 -> dyn.load
Execution halted

Exited with status 1.
Run Code Online (Sandbox Code Playgroud)

我遵循了基本准则来构建包。

.R 文件#' @useDynLib …

r shared-objects rcpp r-package

5
推荐指数
0
解决办法
3306
查看次数

什么是“ .R”文件夹,在哪里寻找?

我是R的初学者。我在MAC OSX上使用Rstudio。

我不知道这是什么意思:“创建一个文件夹〜/ .R并在其中放入一个Makevars。”

我一个字一个字地尝试在我的home(〜)目录中创建“ .R”。MAC不允许它说“您不能使用以点“。”开头的名称,因为这些名称是系统保留的。请选择其他名称。” ( 当然!)

接下来,我尝试寻找.R文件夹,希望它可能已经存在。但是在任何地方都找不到。

谁能解释这个“ .R”文件夹在我们系统上的位置吗?或者如何构建整个R文件夹层次结构。

我尝试这样做:

path2 = normalizePath(“〜/ .R”)

警告信息:

在normalizePath(“〜/ .R”)中:path [1] =“ / Users / as82986 / .R”:没有这样的文件或目录

setwd(路径2)

setwd(path2)中的错误:无法更改工作目录

问题是我什至在Google上找不到任何东西,因为寻找'.R'文件夹引发了模糊和不相关的结果。

另外,如果我不直接访问任何其他文档,将不胜感激。请。非常感谢您对我的帮助。

directory macos r

3
推荐指数
1
解决办法
2248
查看次数

目标文件中的重复符号:

我正在尝试编译两个.cpp文件,(foo.cpp和bar.cpp)并构建一个共享对象(project.so).但是编译失败并且(我的一部分)错误是:

....
duplicate symbol _n in:
foo.o
bar.o
ld: 5 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1(use -v to see 
invocation)
make: *** [project.so] Error 1
ERROR: compilation failed for package ‘project’
Run Code Online (Sandbox Code Playgroud)

我的.cpp文件有几个常见的和不常见的头文件,一些常见和不常见的命名函数,以及一组通常命名的变量:

Foo.cpp中

#include <iostream>
#include <fstream>
#include <vector>
#include <ctime>
#include <cmath>

size_t m1;
double k1=2.0;
std::vector<double> x,y;
std::vector<double> z;
size_t n,p;

void inputfoo(){...}
void output(){...}
Run Code Online (Sandbox Code Playgroud)

bar.cpp

#include <iostream>
#include <fstream>
#include <vector>
#include <ctime>
#include <cmath>
#include "Eigen/Dense"
#include "Eigen/Cholesky" …
Run Code Online (Sandbox Code Playgroud)

c++ r compilation linker-errors

-1
推荐指数
1
解决办法
788
查看次数