找不到为 R 构建 C++ 代码所需的工具

The tools required to build C++ code for R were not found

OS: Ubuntu 14.04
g++: g++ (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4
R version: 3.2.0 (2015-04-16) -- "Full of Ingredients"
Rcpp: 0.11.6

今天我apt-get dist-upgrade我的系统,g++也升级了。 然后当我尝试在 R 中使用 "Rcpp" 包时,代码是最简单的测试代码 >>evalCpp("1+1") 。出现如下错误:

Error in frameTypes(env) : not a proper evaluation environment
Calls: ::: ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>
Execution halted

Error in sourceCpp(code = code, env = env, rebuild = rebuild,showOutput = showOutput,  : 
Error 1 occurred building shared library.

WARNING: The tools required to build C++ code for R were not found.

Please install GNU development tools including a C++ compiler.

我已经做到了google。以下链接都是关于 Mac OSX:

Error when with Xcode 5.0 and Rcpp (Command Line Tools ARE installed)

g++ errors when trying to compile c++11 with Rcpp

从答案和评论中,我无法判断真正的问题是什么。 感谢您的帮助!

更新:我终于通过重新安装所有 R 相关的 deb 包解决了这个问题。我们应该记住的一件事是,我也做了 @Dirk 首先建议的 apt-get build-dep r-base-dev。我无法确定哪一个是关键步骤。

你需要

 sudo apt-get build-dep r-base

为 R 本身安装所有构建依赖项。

但我们甚至构建了一个明确的帮助程序包 r-base-dev 所以 在大多数情况下 (在您的 Rcpp 用例中)您只需要

 sudo apt-get install r-base-dev

您的系统配置中有些东西 wrong/missing。首先,我怀疑你真的是 运行ning Ubuntu 14.04(在 dist 升级之后),因为你列出的其他版本将不可用(除非你将它们从非默认存储库)。您也可以考虑 运行宁一个 full-upgrade 来尝试理顺您的配置。

可能 通过 运行 showOutput=1...

获得一些见解
library(Rcpp)
evalCpp("1+1",showOutput=1,rebuild=1)

...但实际上,问题似乎与名为 env (Error in frameTypes(env) : not a proper evaluation environment) 的参数有关,该参数可能在尝试编译之前进行了评估。

对于它的价值,我能够 运行 这个没有安装 r-base-dev,但也许安装 r-base-dev 会引入正确的和更新的版本需要。我倾向于重新安装所有与 R 相关的包。