0

我正在构建最新的 github 版本的 rstudio-server 以在 OSX Yosemite 上运行,但在安装时无法找到 macports R 库。

我遇到了“找不到最低 R 版本 (2.11.1)”。运行时出错,
cmake -DRSTUDIO_TARGET=Server -DCMAKE_BUILD_TYPE=Release ..
但当我也通过时-DRSTUDIOVERIFYR_VERSION=0,我配置成功并在构建失败之前将其设置为大约 44%:

Rogers-iMac:build roger$ sudo make install
Password:
Scanning dependencies of target gwt_build
Buildfile: /Users/roger/projects/rstudio/src/gwt/build.xml
[...]
Scanning dependencies of target rstudio-r
[ 44%] Building CXX object src/cpp/r/CMakeFiles/rstudio-r.dir/RErrorCategory.cpp.o
[ 44%] Building CXX object src/cpp/r/CMakeFiles/rstudio-r.dir/RExec.cpp.o
In file included from /Users/roger/projects/rstudio/src/cpp/r/RExec.cpp:17:
In file included from /Users/roger/projects/rstudio/src/cpp/r/include/r/RExec.hpp:30:
In file included from /Users/roger/projects/rstudio/src/cpp/r/include/r/RSexp.hpp:33:
/Users/roger/projects/rstudio/src/cpp/r/include/r/RInternal.hpp:43:10: fatal error: 'Rinternals.h' file not found
#include <Rinternals.h>
         ^
1 error generated.

我能够Rinternals.h/opt/local/Library/Frameworks/R.framework/Versions/3.1/PrivateHeaders/Rinternals.h编辑:也在 /opt/local/Library/Frameworks/R.framework/Versions/3.1/Resources/include/Rinternals.h)中找到,但是如何将构建配置指向这个位置?

编辑:此外,我遇到了另一个问题,即构建在大约 70% 处失败并出现错误
/opt/local/lib/libR.dylib/Resources/R: not a directory
make[2]: *** [src/cpp/r/R/packages/library/manipulate/DESCRIPTION] Error 126 经过进一步调查,/opt/local/lib/libR.dylib/Resources/R不存在,因为/opt/local/lib/libR.dylib实际上是一个文件。

4

3 回答 3

0

这似乎是 RStudio cmake 脚本无法正确检测到 MacPorts R 安装的问题。要解决这些问题:

  1. 使用(或任何适合您的位置)指向cmake您的 R 可执行文件的正确位置export RSTUDIO_WHICH_R=/opt/local/bin/R,如本 RStudio 知识库文章中所述。这解决了cmake无法生成配置的问题。
  2. 要解决Rinternals.h找不到的问题,请进入build/CMakeCache.txt并更改路径LIBR_INCLUDE_DIRS以反映Rinternals.h的实际位置,如本 RStudio 支持论坛问题中所述。
  3. 确保LIBR_EXECUTABLELIBR_HOMELIBR_DOC_DIR都指向正确的位置。如本网页R.home(component="home")所述,您可以通过在 R 交互式提示中执行(或)来获取正确的位置。这将解决 44% 的构建错误,以及 70-ish% 的额外错误。component="doc"
于 2014-11-09T06:19:52.657 回答
0

不知道具体的,cmake但你可以试试

$ export CPATH=$CPATH:/opt/local/Library/Frameworks/R.framework/Versions/3.1/PrivateHeaders/
$ sudo make install

告诉编译器在您找到它们的位置查找头文件。

于 2014-11-06T18:16:42.110 回答
0

添加-I /opt/local/Library/Frameworks/R.framework/Versions/3.1/PrivateHeaders/到编译器的命令行。

或者,您可以CPLUS_INCLUDE_PATH在环境中设置以告诉编译器在编译 C++ 代码时在哪里搜索附加头文件。如果需要,您可能还想C_INCLUDE_PATH为 C 设置。

$ export CPLUS_INCLUDE_PATH=/opt/local/Library/Frameworks/R.framework/Versions/3.1/PrivateHeaders
$ make
于 2014-11-07T03:14:50.073 回答