Windows环境下使用RTools安装R markdown包失败问题求助
安装R包markdown时gcc路径错误的问题与解决
问题详情
使用Spotted Wakerobin版本的RStudio(对应R版本4.2.1),从CRAN安装markdown包时出现以下编译错误:
C:\rtools42\usr\bin\gcc -I"C:/PROGRA~1/R/R-42~1.1/include" -DNDEBUG -I"C:/rtools42/x86_64-w64-mingw32.static.posix/include" -O2 -Wall -std=gnu99 -mfpmath=sse -msse2 -mstackrealign -c Rbase64.c -o Rbase64.o /bin/sh: line 1: C:rtools42usrbingcc: command not found make: *** [C:/PROGRA~1/R/R-42~1.1/etc/x64/Makeconf:253: Rbase64.o] Error 127 ERROR: compilation failed for package 'markdown' * removing 'C:/Program Files/RPackages/markdown' Warning in install.packages : installation of package ‘markdown’ had non-zero exit status
已确认gcc版本为10.4.0,正常可用:
Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=c:/rtools42/x86_64-w64-mingw32.static.posix/bin/../libexec/gcc/x86_64-w64-mingw32.static.posix/10.4.0/lto-wrapper.exe Target: x86_64-w64-mingw32.static.posix Configured with: /root/mxe/tmp-gcc-host-x86_64-w64-mingw32.static.posix/gcc-10.4.0/configure --host=x86_64-w64-mingw32.static.posix --target=x86_64-w64-mingw32.static.posix --build=x86_64-pc-linux-gnu --prefix=/usr/lib/mxe/usr/x86_64-w64-mingw32.static.posix --with-native-system-header-dir=/usr/lib/mxe/usr/x86_64-w64-mingw32.static.posix/include --enable-languages=c,c++,objc,fortran --enable-version-specific-runtime-libs --with-gcc --with-gnu-ld --with-gnu-as --disable-nls --without-libiconv-prefix --disable-shared --disable-multilib --without-x --disable-win32-registry --enable-threads=posix --enable-libgomp --with-gmp=/usr/lib/mxe/usr/x86_64-w64-mingw32.static.posix --with-isl=/usr/lib/mxe/usr/x86_64-w64-mingw32.static.posix --with-mpc=/usr/lib/mxe/usr/x86_64-w64-mingw32.static.posix --with-mpfr=/usr/lib/mxe/usr/x86_64-w64-mingw32.static.posix --enable-libstdcxx-time target_configargs=XCFLAGS=-Wno-format Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 10.4.0 (GCC)
当前配置的环境变量:
| 变量名 | 配置值 |
|---|---|
| Path | C:\Program Files\R\R-4.0.5\bin;C:\rtools42\usr\bin; |
| BINPREF | C:\rtools42\x86_64-w64-mingw32.static.posix\bin\ |
| R_HOME | C:\Program Files\R\R-4.0.5\library\base\R\Rprofile |
| R_LIBS_USER | C:\Program Files\RPackages |
| R_USER | C:\Program Files\R\R-4.0.5 |
| RTOOLS42_HOME | C:\rtools42 |
解决步骤
1. 修正R相关环境变量的版本不匹配问题
- Path变量:将Path中的
C:\Program Files\R\R-4.0.5\bin替换为当前使用的R 4.2.1的bin路径(如C:\Program Files\R\R-4.2.1\bin),并确保C:\rtools42\usr\bin排在Path列表的靠前位置,避免其他冲突路径优先被识别。 - R_HOME变量:当前值指向了Rprofile文件,是错误配置。需修改为R的安装根目录,比如
C:\Program Files\R\R-4.2.1。
2. 调整BINPREF的路径格式
BINPREF需要使用正斜杠作为路径分隔符,且末尾保留正斜杠,修改为:
C:/rtools42/x86_64-w64-mingw32.static.posix/bin/
或者使用Rtools推荐的相对路径格式:
/mingw64/bin/
3. 验证环境变量是否生效
重启电脑后打开RStudio,运行以下代码检查gcc路径是否被正确识别:
Sys.which("gcc")
若返回类似C:\\rtools42\\usr\\bin\\gcc.exe的有效路径,说明配置正确;若返回空,需重新检查环境变量的拼写和顺序。
4. 重新安装markdown包
确认环境配置无误后,运行以下命令重新安装:
install.packages("markdown")
若仍失败,可先安装依赖包再尝试:
install.packages(c("htmltools", "yaml")) install.packages("markdown")
内容的提问来源于stack exchange,提问作者William Kozlowski
相关产品推荐
相关产品推荐

