执行R CMD INSTALL CopulaModule报错:gcc路径存在却提示不存在
你碰到的这个情况挺常见的——明明c:/Rtools/mingw_32/bin/gcc实实在在存在,但执行R CMD INSTALL CopulaModule就是报找不到的错,结合你用的是R 3.5.0和对应版本RTools的背景,我给你列几个靠谱的排查方向:
先检查系统环境变量的配置
RTools要正常工作,必须把对应的路径加到系统PATH里,而且顺序不能错。你得确保c:/Rtools/bin和c:/Rtools/mingw_32/bin(如果是64位R的话可能是mingw_64/bin,不过R3.5.0的32位版本对应mingw_32)排在系统里其他gcc相关路径的前面。
你可以打开命令提示符(cmd),输入where gcc,看看返回的第一个路径是不是RTools下的那个。如果不是,就去系统环境变量里把RTools的这两个路径移到最前面,然后重启R和cmd再试。确认RTools安装的完整性和匹配性
虽然你说装了对应R3.5.0的RTools,但还是要再核对下:R3.5.0对应的是RTools35(版本号3.5),安装的时候有没有勾选"Add RTools to system PATH"这个选项?要是没勾的话,即使装好了系统也找不到它的工具。另外,直接去c:/Rtools/mingw_32/bin文件夹里双击运行gcc.exe,或者在cmd里切换到这个目录输入gcc --version,看看能不能正常输出版本信息,确认gcc本身没损坏。检查R的内部配置是否正确指向RTools
有时候R的配置文件会覆盖系统环境变量的设置。你可以在R控制台里输这两条命令看看当前的编译工具路径:Sys.getenv("PATH") Sys.getenv("BINPREF")如果
BINPREF的路径不对,或者PATH里没包含RTools的路径,可以手动在R里临时设置:Sys.setenv(PATH = paste("c:/Rtools/bin", "c:/Rtools/mingw_32/bin", Sys.getenv("PATH"), sep = ";")) Sys.setenv(BINPREF = "c:/Rtools/mingw_32/bin/")设置完再去执行
R CMD INSTALL命令试试。试试用管理员权限运行cmd
有时候权限问题会导致系统没法访问某些路径,右键点cmd选"以管理员身份运行",然后切换到CopulaModule所在的文件夹再执行安装命令,说不定就好了。排查CopulaModule所在路径的问题
你的CopulaModule文件夹路径里有没有空格或者特殊字符?比如C:/My Documents/R Packages/CopulaModule这种带空格的路径,很容易让命令解析出错。建议把它移到一个干净的路径下,比如C:/RPackages/CopulaModule,再重新安装。
内容的提问来源于stack exchange,提问作者LMATH

