gpt4 book ai didi

r - 英特尔编译器 - 无法在 R 中安装需要 eventloop.h 的包

转载 作者:行者123 更新时间:2023-12-02 10:44:37 28 4
gpt4 key购买 nike

似乎我无法在 R 中安装任何需要编译任何文件的包。事件循环.h

我使用英特尔编译器对 R 进行了自定义安装,并链接到英特尔 MKL BLAS 库。

这是我得到的具体错误:

> install.packages("setwidth")
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Selection: 77
trying URL 'http://streaming.stat.iastate.edu/CRAN/src/contrib/setwidth_1.0-3.tar.gz'
Content type 'application/x-gzip' length 3789 bytes
opened URL
==================================================
downloaded 3789 bytes

* installing *source* package ‘setwidth’ ...
** package ‘setwidth’ successfully unpacked and MD5 sums checked
** libs
icc -std=c99 -I/usr/local/lib/R/include -DNDEBUG -I/usr/local/include -fpic -O3 -ipo -xavx -openmp -c setwidth.c -o setwidth.o
In file included from setwidth.c(4):
/usr/local/lib/R/include/R_ext/eventloop.h(73): error: identifier "fd_set" is undefined
extern InputHandler *getSelectedHandler(InputHandler *handlers, fd_set *mask);
^
... more of the same ...

^

compilation aborted for setwidth.c (code 2)
make: *** [setwidth.o] Error 2
ERROR: compilation failed for package ‘setwidth’
* removing ‘/usr/local/lib/R/site-library/setwidth’

The downloaded source packages are in
‘/tmp/RtmpXuQs4W/downloaded_packages’
Warning message:
In install.packages("setwidth") :
installation of package ‘setwidth’ had non-zero exit status

让我知道您可能需要的任何其他信息,以帮助我解决此问题。

编辑:

我尝试添加
R_XTRA_CFLAGS = -I /src/include -I /src/include/sys 

到我的 ~/.R/Makevars 文件,因为 fd_set/sys/select.h 中定义没有人有任何想法?

编辑:

所以这个问题不会出现在每个包中,只有需要某些 R header 的包才会出现。到目前为止,我只对某个作者编写的包有问题(将 R 与 VIM 集成所需的所有包, http://www.lepem.ufc.br/jaa/vim-r-plugin.html)有人有什么想法吗?

编辑:

似乎是编译器问题:
gcc -I /usr/include/ -I /usr/local/lib/R/include/ -c setwidth.c

但是有效
icc -std=c99 -I /usr/include -I /usr/local/lib/R/include  -O3 -ipo -xavx -openmp -c setwidth.c

才不是

最佳答案

让我们稍微备份一下:

  • Ubuntu 与 R 一起使用非常广泛。
  • 您可以只安装 prebuilt current binary from CRAN
  • 然后,您可以添加 MKL,因为 BLAS 由于其标准接口(interface)而可以互换。 (这经常被误解;有关详细信息,请参阅我的 gcbd vignette)
  • 通过使用更常见的设置,您可以轻松编译包或获得预构建的包。
  • 然后您可以更仔细地研究您的英特尔 icc 设置。

  • 目前它已损坏,您可以保留两部分。

    编辑:为了更清楚,在标准的 Ubuntu 系统上使用 CRAN 关闭的 Ubuntu 二进制包:
    edd@max:~$ install.r setwdith
    Warning message:
    package ‘setwdith’ is not available (for R version 3.0.2)
    edd@max:~$ install.r setwidth
    trying URL 'http://cran.r-project.org/src/contrib/setwidth_1.0-3.tar.gz'
    Content type 'application/x-gzip' length 3789 bytes
    opened URL
    ==================================================
    downloaded 3789 bytes

    * installing *source* package ‘setwidth’ ...
    ** package ‘setwidth’ successfully unpacked and MD5 sums checked
    ** libs
    ccache gcc-4.8 -I/usr/share/R/include -DNDEBUG -fpic -O3 -g0 -Wall -pipe -pedantic -std=gnu99 -c setwidth.c -o setwidth.o
    ccache gcc-4.8 -shared -o setwidth.so setwidth.o -L/usr/lib/R/lib -lR
    installing to /usr/local/lib/R/site-library/setwidth/libs
    ** R
    ** preparing package for lazy loading
    ** help
    *** installing help indices
    ** building package indices
    ** testing if installed package can be loaded
    * DONE (setwidth)

    The downloaded source packages are in
    ‘/tmp/downloaded_packages’
    edd@max:~$

    这里 install.r是我的 littler 的脚本包裹;编译器设置是我通过(真棒) ccache 包装的默认设置工具。

    关于r - 英特尔编译器 - 无法在 R 中安装需要 eventloop.h 的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22105584/

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