gpt4 book ai didi

c++ - 无法使用 Armadillo 示例编译 rinside

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:19:34 26 4
gpt4 key购买 nike

我正在尝试使用 Rinside 编译 Rarmadillo 示例,但我不断得到:

In file included from rinside_arma0.cpp:8:0:
/usr/local64/opt/R-2.15.2/lib/R/library/RcppArmadillo/include/RcppArmadillo.h:26:6: error: #error "The file 'Rcpp.h' should not be included. Please correct to include only 'RcppArmadillo.h'."

我用谷歌搜索了它,但我一直在获取源代码本身。有什么想法吗?

代码是:

// -*- c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
//
// Simple example using Armadillo classes
//
// Copyright (C) 2012 Dirk Eddelbuettel and Romain Francois

#include <RInside.h> // for the embedded R via RInside
#include <RcppArmadillo.h>

int main(int argc, char *argv[]) {

RInside R(argc, argv); // create an embedded R instance

std::string cmd = "diag(3)"; // create a Matrix in r

arma::mat m = Rcpp::as<arma::mat>(R.parseEval(cmd)); // parse, eval + return result

std::cout << m << std::endl; // and use Armadillo i/o

exit(0);
}

并使用以下方法编译它:

g++ -I/usr/local64/opt/R-2.15.2/lib/R/include -I/usr/local64/opt/R-2.15.2/lib/R/library/Rcpp/include -I"/usr/local64/opt/R-2.15.2/lib/R/library/RcppArmadillo/include"   -I/usr/local64/opt/R-2.15.2/lib/R/library/RInside/include -g -O2 -Wall -I/usr/local/include   rinside_arma0.cpp  -L/usr/local64/opt/R-2.15.2/lib/R/lib -lR  -lf77blas -latlas -llapack -L/usr/local64/opt/R-2.15.2/lib/R/library/Rcpp/lib -lRcpp -Wl,-rpath,/usr/local64/opt/R-2.15.2/lib/R/library/Rcpp/lib -L/usr/local64/opt/R-2.15.2/lib/R/library/RInside/lib -lRInside -Wl,-rpath,/usr/local64/opt/R-2.15.2/lib/R/library/RInside/lib  -o rinside_arma0

最佳答案

您得到的错误是因为 Rcpp.h 包含在 RcppArmadillo.h 之前,Rcpp.h 包含在 RInside .h.

对于 RcppArmadillo 的魔力,需要在 Rcpp.h 之前加载文件 RcppArmadillo.h。所以我建议你这样做:

#include <RcppArmadillo.h>
#include <RInside.h>

关于c++ - 无法使用 Armadillo 示例编译 rinside,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17469761/

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