Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将OpenBlas Lapacke与Rcpp一起使用 < >我有一些运行的C++代码,使用 Lapacke 版本,附带代码< OpenBLAS< /COD>。我希望将此代码包含到R包中,并使用Rcpp包在该函数和R之间传输数据。但不知何故,这两个人似乎不喜欢对方。一旦我把#include和#include放在一个源文件中,它就不再编译了。两种方法都很好。有一大堆错误消息,据我所知,Rcpp被破坏了(例如/home/Alex/R/x86\u 64-pc-linux-gnu-library/3.4/Rcpp/include/Rcpp/traits/traits.h:32:15:error:expected')在“\uuuuu extension\uuuuu”之前“_C++_R_Rcpp_R Package_Lapacke - Fatal编程技术网

如何将OpenBlas Lapacke与Rcpp一起使用 < >我有一些运行的C++代码,使用 Lapacke 版本,附带代码< OpenBLAS< /COD>。我希望将此代码包含到R包中,并使用Rcpp包在该函数和R之间传输数据。但不知何故,这两个人似乎不喜欢对方。一旦我把#include和#include放在一个源文件中,它就不再编译了。两种方法都很好。有一大堆错误消息,据我所知,Rcpp被破坏了(例如/home/Alex/R/x86\u 64-pc-linux-gnu-library/3.4/Rcpp/include/Rcpp/traits/traits.h:32:15:error:expected')在“\uuuuu extension\uuuuu”之前“

如何将OpenBlas Lapacke与Rcpp一起使用 < >我有一些运行的C++代码,使用 Lapacke 版本,附带代码< OpenBLAS< /COD>。我希望将此代码包含到R包中,并使用Rcpp包在该函数和R之间传输数据。但不知何故,这两个人似乎不喜欢对方。一旦我把#include和#include放在一个源文件中,它就不再编译了。两种方法都很好。有一大堆错误消息,据我所知,Rcpp被破坏了(例如/home/Alex/R/x86\u 64-pc-linux-gnu-library/3.4/Rcpp/include/Rcpp/traits/traits.h:32:15:error:expected')在“\uuuuu extension\uuuuu”之前“,c++,r,rcpp,r-package,lapacke,C++,R,Rcpp,R Package,Lapacke,我不知道为什么会这样。有没有办法同时使用两者? 或者我应该做些完全不同的事情 下面是一个给出错误的最小示例: 我使用 Rcpp::Rcpp.package.skeleton("LT", example_code = FALSE) 我在/src中添加了一个.cpp文件,其中包含 #include <lapacke.h> #include <Rcpp.h> int test_LAPACK(){ return(1); } 编译和安装 Rcpp::compileAt

我不知道为什么会这样。有没有办法同时使用两者? 或者我应该做些完全不同的事情

下面是一个给出错误的最小示例:

  • 我使用

    Rcpp::Rcpp.package.skeleton("LT", example_code = FALSE)
    
  • 我在
    /src
    中添加了一个
    .cpp
    文件,其中包含

    #include <lapacke.h>
    #include <Rcpp.h>
    
    int test_LAPACK(){
      return(1);
    }
    
  • 编译和安装

    Rcpp::compileAttributes("LT")
    devtools::install("LT")
    

  • 它实际上是按照标准的
    sudo-apt-install-liblapacke-dev
    在我的系统上运行的,前提是我还更改了包含顺序

    证人:

    来源 安装 跑 (在我添加了一行
    /[[Rcpp::export]]
    之后,运行
    compileAttributes()
    并重新构建和安装。)

    总结
    检查编译器。没有根本的理由认为这不起作用,它在这里起作用(Ubuntu 18.04)。

    @DirkEddelbuettel至少在我的简单示例中,更改包含顺序似乎起作用。谢谢你的提示,这种情况经常发生。大型项目往往会定义一些东西,其他项目可能会因此受到“打击”。经验教会你把某些事情放在第一位或最后一位。最糟糕的情况是,你有相互冲突的需求……但是,是的,在答案中添加了注释作为编辑——关键实际上是这里的链接顺序。
    Rcpp::compileAttributes("LT")
    devtools::install("LT")
    
    rob:/tmp/lapacke/LT$ cat src/lt.cpp 
    #include <Rcpp.h>
    #include <lapacke.h>
    
    int test_LAPACK(){
              return(1);
    }
    rob:/tmp/lapacke/LT$ ls src/      ## no Makevars needed
    lt.cpp
    rob:/tmp/lapacke/LT$ 
    
    rob:/tmp/lapacke/LT$ build.r 
    * checking for file ‘./DESCRIPTION’ ... OK
    * preparing ‘LT’:
    * checking DESCRIPTION meta-information ... OK
    * cleaning src
    * installing the package to process help pages
    * saving partial Rd database
    * cleaning src
    * checking for LF line-endings in source and make files and shell scripts
    * checking for empty or unneeded directories
    Removed empty directory ‘LT/R’
    * building ‘LT_1.0.tar.gz’
    
    rob:/tmp/lapacke/LT$
    
    rob:/tmp/lapacke/LT$ install.r LT_1.0.tar.gz 
    * installing *source* package ‘LT’ ...
    ** libs
    ccache g++ -I"/usr/share/R/include" -DNDEBUG  -I"/usr/local/lib/R/site-library/Rcpp/include"    -fpic  -g -O3 -Wall -pipe   -march=native -c lt.cpp -o lt.o
    ccache g++ -Wl,-S -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o LT.so lt.o -L/usr/lib/R/lib -lR
    installing to /usr/local/lib/R/site-library/LT/libs
    ** help
    *** installing help indices
    ** building package indices
    ** testing if installed package can be loaded
    * DONE (LT)
    rob:/tmp/lapacke/LT$ 
    
    rob:/tmp/lapacke/LT$ r -lLT -p -e'test_LAPACK()'
    [1] 1
    rob:/tmp/lapacke/LT$