You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法从源码重装R包MODifieRDev:gcc编译报错求助

问题描述
  • 使用renv环境,此前可多次卸载重装GitHub上的MODifieRDev包,但现在通过devtools::install_git()重新安装时遇到gcc编译错误
  • 可通过renv::install("MODifieRDev")从缓存重装,但不符合需求
  • 操作环境为公司共享服务器,可能存在环境变化但无法排查
错误日志
> devtools::install_git(url = "https://github.com/ddeweerd/MODifieRDev.git")
Downloading git repo https://github.com/ddeweerd/MODifieRDev.git
'/usr/bin/git' clone --depth 1 --no-hardlinks https://github.com/ddeweerd/MODifieRDev.git /tmp/RtmpqwDAXr/file3ca29d3d72d664
Cloning into '/tmp/RtmpqwDAXr/file3ca29d3d72d664'...
remote: Enumerating objects: 93, done.
remote: Counting objects: 100% (93/93), done.
remote: Compressing objects: 100% (89/89), done.
remote: Total 93 (delta 8), reused 37 (delta 2), pack-reused 0
Unpacking objects: 100% (93/93), 2.79 MiB | 981.00 KiB/s, done.
── R CMD build ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
✔  checking for file ‘/tmp/RtmpqwDAXr/file3ca29d3d72d664/DESCRIPTION’ ...
─  preparing ‘MODifieRDev’:
✔  checking DESCRIPTION meta-information ...
─  cleaning src
─  checking for LF line-endings in source and make files and shell scripts
─  checking for empty or unneeded directories
─  building ‘MODifieRDev_0.1.3.tar.gz’
   
Installing package into ‘/home/myuser/HHH/renv/library/R-4.2/x86_64-pc-linux-gnu’
(as ‘lib’ is unspecified)
* installing *source* package ‘MODifieRDev’ ...
** using staged installation
** libs
gcc -I"/opt/somefolder/software/installed/R-4.2.2-focal/lib/R/include" -DNDEBUG  -I'/home/myuser/HHH/renv/library/R-4.2/x86_64-pc-linux-gnu/Rcpp/include' -I/usr/local/include   -fpic  -g -O2  -c MODifieRDev_init.c -o MODifieRDev_init.o
gcc -I"/opt/somefolder/software/installed/R-4.2.2-focal/lib/R/include" -DNDEBUG  -I'/home/myuser/HHH/renv/library/R-4.2/x86_64-pc-linux-gnu/Rcpp/include' -I/usr/local/include   -fpic  -g -O2  -c complex.c -o complex.o
gcc -shared -L/opt/somefolder/software/installed/R-4.2.2-focal/lib/R/lib -L/usr/local/lib -o MODifieRDev.so MODifieRDev_init.o complex.o [1] "/tmp/Rtmpr2Y1zB/R.INSTALL3ca87510a75a87/MODifieRDev/src" -L/opt/somefolder/software/installed/R-4.2.2-focal/lib/R/lib -lR
gcc: error: [1]: No such file or directory
gcc: error: "/tmp/Rtmpr2Y1zB/R.INSTALL3ca87510a75a87/MODifieRDev/src": No such file or directory
make: *** [/opt/somefolder/software/installed/R-4.2.2-focal/lib/R/share/make/shlib.mk:10: MODifieRDev.so] Error 1
ERROR: compilation failed for package ‘MODifieRDev’
* removing ‘/home/myuser/HHH/renv/library/R-4.2/x86_64-pc-linux-gnu/MODifieRDev’
Warning message:
In i.p(...) :
  installation of package ‘/tmp/RtmpqwDAXr/file3ca29d289d588e/MODifieRDev_0.1.3.tar.gz’ had non-zero exit status
解决思路

从错误日志看,gcc编译命令里混入了[1]和无效路径字符串,属于命令解析异常,可按以下步骤排查:

  • 清理临时文件重试
    运行unlink(tempdir(), recursive = TRUE)清理R临时目录,重启R后再次执行devtools::install_git();也可手动删除日志中提到的临时目录(如/tmp/RtmpqwDAXr/、/tmp/Rtmpr2Y1zB/)

  • 检查并重置环境变量
    运行Sys.getenv(c("MAKEFLAGS", "LDFLAGS", "CPPFLAGS"))查看是否有异常字符混入环境变量,若发现问题,用Sys.unsetenv()清除对应变量(比如Sys.unsetenv("MAKEFLAGS"))后再尝试安装

  • 手动克隆编译安装
    避开devtools的命令解析环节:

    1. 手动克隆仓库:git clone https://github.com/ddeweerd/MODifieRDev.git
    2. 进入克隆目录,运行R CMD build .生成tar.gz包
    3. 执行R CMD INSTALL MODifieRDev_0.1.3.tar.gz手动安装
  • 验证gcc与R版本兼容性
    运行gcc --version和R --version确认版本适配(R 4.2.2建议搭配gcc 9及以上版本),若gcc版本过低,联系管理员升级,或临时指定高版本gcc路径:Sys.setenv(CC="/usr/bin/gcc-10")

  • 重置renv环境(谨慎操作)
    备份renv.lock后,运行renv::deactivate()再renv::init()重新初始化环境,之后尝试安装

内容的提问来源于stack exchange,提问作者gaspanic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 11:17:17