安装R包fixest时出现DOUBLE_EPS未声明错误的解决咨询
解决R 3.4.4下安装fixest 0.8.4编译失败的问题
错误原因
编译报错中提到的DOUBLE_EPS是R 3.5.0及以上版本才引入的预定义宏,你的R版本为3.4.4,不包含这个宏定义,导致C++代码编译失败。
解决方案
方案1:手动修改fixest源码后编译安装
- 下载目标包到本地:
wget https://XXX/src/contrib/Archive/fixest/fixest_0.8.4.tar.gz - 解压包文件:
tar -xzf fixest_0.8.4.tar.gz - 进入源码目录并编辑报错的C++文件:
cd fixest/src vi parallel_funs.cpp - 在文件开头的
#include语句之后添加DOUBLE_EPS的定义:#define DOUBLE_EPS 2.220446049250313e-16 - 返回上级目录重新打包修改后的源码:
cd ../.. tar -czf fixest_0.8.4_modified.tar.gz fixest/ - 安装修改后的包:
install.packages("fixest_0.8.4_modified.tar.gz", repos=NULL, type="source")
方案2:安装兼容R 3.4.4的更早版本fixest
fixest 0.8.4已开始依赖R 3.5的特性,可选择明确支持R 3.4的版本(如0.7.1,其DESCRIPTION中指定依赖R >= 3.2.0):
packageurl <- "https://XXX/src/contrib/Archive/fixest/fixest_0.7.1.tar.gz" install.packages(packageurl, repos=NULL, type="source")
前置依赖检查
确保Red Hat系统已安装编译所需的基础依赖:
sudo yum install gcc-c++ R-devel
内容的提问来源于stack exchange,提问作者jms202
相关产品推荐
相关产品推荐

