gpt4 book ai didi

c++ - 编译器错误 : Undefined symbols for architecture x86_6 when using Rccp classes.

转载 作者:行者123 更新时间:2023-11-28 00:12:29 26 4
gpt4 key购买 nike

我刚刚开始习惯使用 R 中的 Rcpp 包。我通常在使用 Rcpp 时构建一个包。然而,为了调试和测试,我希望能够在不涉及 R 的情况下运行 C++ 代码。因此,我尝试在 C++ 程序中使用 Rccp 类。例子

#include <Rcpp.h>

int main(int argc, const char * argv[])
{
Rcpp::NumericVector vec(0);

return 0;
}

产生以下错误:

Undefined symbols for architecture x86_64:
"_REprintf", referenced from:
Rcpp::Rstreambuf<false>::xsputn(char const*, long) in main-fe5efc.o
Rcpp::Rstreambuf<false>::overflow(int) in main-fe5efc.o
"_R_FlushConsole", referenced from:
Rcpp::Rstreambuf<false>::sync() in main-fe5efc.o
Rcpp::Rstreambuf<true>::sync() in main-fe5efc.o
"_R_GetCCallable", referenced from:
dataptr(SEXPREC*) in main-fe5efc.o
"_R_NilValue", referenced from:
Rcpp::PreserveStorage<Rcpp::Vector<14, Rcpp::PreserveStorage> >::PreserveStorage() in main-fe5efc.o
Rcpp::PreserveStorage<Rcpp::Vector<14, Rcpp::PreserveStorage> >::~PreserveStorage() in main-fe5efc.o
Rcpp::Rcpp_ReleaseObject(SEXPREC*) in main-fe5efc.o
Rcpp::Rcpp_PreserveObject(SEXPREC*) in main-fe5efc.o
"_R_PreserveObject", referenced from:
Rcpp::Rcpp_PreserveObject(SEXPREC*) in main-fe5efc.o
"_R_ReleaseObject", referenced from:
Rcpp::Rcpp_ReleaseObject(SEXPREC*) in main-fe5efc.o
"_Rf_allocVector", referenced from:
Rcpp::Vector<14, Rcpp::PreserveStorage>::Vector(int const&) in main-fe5efc.o
"_Rf_isNull", referenced from:
Rcpp::Rcpp_ReplaceObject(SEXPREC*, SEXPREC*) in main-fe5efc.o
"_Rf_xlength", referenced from:
void Rcpp::internal::r_init_vector<14>(SEXPREC*) in main-fe5efc.o
"_Rprintf", referenced from:
Rcpp::Rstreambuf<true>::xsputn(char const*, long) in main-fe5efc.o
Rcpp::Rstreambuf<true>::overflow(int) in main-fe5efc.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我使用以下命令编译:

clang++ main.cpp -I/Library/Frameworks/R.framework/Resources/include -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include -I"/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include"

我在 Mac 上使用 Xcode 6。寻找解决方案我已经从源代码安装了 Rcpp 和 RInside,但它没有解决问题。感谢您的帮助!

最佳答案

Rcpp 是 R 的扩展。没有 R,它根本无法工作。

你只是做了一个大胆的假设,认为你可以做你正在做的事。事实证明,该假设是不正确的。

如果您想构建新的“主要”程序,您最接近的选择是使用 RInside它嵌入了 R。从它的大量示例开始,特别是在 examples/standard/ 中。

关于c++ - 编译器错误 : Undefined symbols for architecture x86_6 when using Rccp classes.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32276733/

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