R安装semPlot包时重复输出stringi相关g++编译日志如何解决
R安装semPlot包stringi编译重复输出解决方案
问题原因
你遇到的重复编译日志是semPlot依赖的stringi包触发源码编译导致的:
"C:/rtools40/mingw32/bin/"g++ -std=gnu++11 -I"C:/PROGRA1/R/R-411.0/include" -DNDEBUG -I. -Iicu69/ -Iicu69/unicode -Iicu69/common -Iicu69/i18n -DU_STRINGI_PATCHES -DUCONFIG_USE_LOCAL -DU_STATIC_IMPLEMENTATION -DU_COMMON_IMPLEMENTATION -DU_I18N_IMPLEMENTATION -DU_TOOLUTIL_IMPLEMENTATION -UDEBUG -DNDEBUG -DWINVER=0x0601 -D_WIN32_WINNT=0x0601 -DU_USE_STRTOD_L=0 -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c stri_exception.cpp -o stri_exception.o
Windows环境下源码编译stringi需要依赖完整的ICU编译链,编译过程耗时久且容易出现环境匹配异常导致卡死循环输出日志,不需要等待编译完成,按以下步骤处理即可。
解决方案
- 步骤1:先终止当前R的安装进程,卸载可能存在的损坏的
stringi安装包
执行命令:
执行完成后重启R。remove.packages("stringi") - 步骤2:强制安装预编译版本的
stringi包,跳过源码编译环节
执行命令:
注意:安装过程中如果弹出是否要从源码编译的提示框,选择「否」install.packages("stringi", type = "binary") - 步骤3:重新安装semPlot包
执行命令:install.packages("semPlot")
异常兜底处理
如果上述步骤执行后仍然触发编译,可临时将Rtools路径加入R的环境变量后再重试安装:
Sys.setenv(PATH = paste0("C:/rtools40/mingw32/bin;", "C:/rtools40/usr/bin;", Sys.getenv("PATH")))
再依次执行步骤2、步骤3即可。
内容的提问来源于stack exchange,提问作者hohohaha
相关产品推荐
相关产品推荐

