我是 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的初学者。我在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'文件夹引发了模糊和不相关的结果。
另外,如果我不直接访问任何其他文档,将不胜感激。请。非常感谢您对我的帮助。
我正在尝试编译两个.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)