安装R包treeclim时出现'Error in if (nzchar(cxx))'错误的解决方法
解决M1 Mac下安装treeclim本地R包的编译错误
错误根源
编译过程中出现的make: *** /Users/user/.R/Makevars: Is a directory. Stop.是核心问题——R编译源码包时,默认读取~/.R/Makevars作为编译配置文件,但该路径被意外创建成了目录,导致make命令无法解析配置,进而触发后续的Error in if (nzchar(cxx)) { : argument is of length zero变量错误。
解决步骤
1. 删除错误的Makevars目录
打开终端执行以下命令,彻底删除误创建的目录:rm -rf ~/.R/Makevars2. 创建适配M1芯片的Makevars配置文件
终端执行命令创建并编辑配置文件:nano ~/.R/Makevars将以下适配arm64架构的编译配置粘贴到文件中:
CC=clang CXX=clang++ CFLAGS=-arch arm64 -O3 -Wall -pedantic CXXFLAGS=-arch arm64 -O3 -Wall -pedantic LDFLAGS=-arch arm64按
Ctrl+O保存修改,Ctrl+X退出编辑器。3. 重新安装treeclim包
回到RStudio,重新运行安装命令:install.packages("~/Desktop/treeclim_2.0.6.0.tar", repos = NULL, type = "source", dependencies = TRUE)
额外注意事项
如果之前未安装Xcode命令行工具,需先执行以下命令安装(编译源码包必需):
xcode-select --install
内容的提问来源于stack exchange,提问作者ormbtnk
相关产品推荐
相关产品推荐

