我已经在没有 apt-get 或 sudo 的机器上从源代码构建并安装了 libcairo2-dev,但无法让 R 查看 Cairo 头文件(对于 install.packages('Cairo')
上类)。我的最终目标是 R 与开罗合作,以这种方式构建并将开罗连接到 R 是我认为的最佳路线。关于如何让 R 看到我构建的开罗的想法?
R 在 install.packages('Cairo')
中遇到以下错误,但我在错误消息请求的标志中看到了所需的文件。
configure: CAIRO_CFLAGS=-L/app/vendor/cairo/include/cairo
checking if R was compiled with the RConn patch... no
checking cairo.h usability... no
checking cairo.h presence... no
checking for cairo.h... no
configure: error: Cannot find cairo.h! Please install cairo (http://www.cairographics.org/) and/or set CAIRO_CFLAGS/LIBS correspondingly.
对比
~/vendor/cairo/include/cairo $ pwd
/app/vendor/cairo/include/cairo
~/vendor/cairo/include/cairo $ ls
cairo-deprecated.h cairo-ft.h cairo-pdf.h cairo-svg.h cairo-xlib.h
cairo-features.h cairo.h cairo-ps.h cairo-version.h
诸如 -L/app/vendor/cairo 之类的变体也会失败。我的业余理论是,预先存在的 libcairo2 安装(缺少头文件)正在伪造 install.packages 调用。
我的 session 信息():
> sessionInfo()
R version 2.15.1 (2012-06-22)
Platform: x86_64-unknown-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=C LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
最佳答案
可能有点晚了,因为您可能已经解决了问题,但似乎 CAIRO_CFLAGS 设置不正确。您试图包含 cairo.h 而不是试图链接它(我认为)。所以从技术上讲应该是:
CAIRO_CFLAGS=-I/app/vendor/cairo/include/cairo
请注意“-I”而不是您所说的“-L”。您自己设置CAIRO_CLAGS吗?或者这是为你设置的吗?通常,您不需要设置它(至少我不需要)。
HTH。
关于r - 连接开罗和 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16756008/