在R 3.4.0中安装ncdf4包失败,报错‘cannot find -lnetcdf’如何解决?
解决R 3.4.0安装ncdf4失败的问题
你的报错cannot find -lnetcdf本质是编译ncdf4包时找不到netCDF的C开发库——ncdf4依赖底层的netCDF库来读写文件,R在编译这个包的时候需要链接该库,找不到就会触发编译失败。结合你用的Anaconda环境,给你几个针对性的解决方案,按顺序试就行:
方案1:用Conda直接安装R的ncdf4包(最省心)
因为你用Anaconda管理环境,优先用conda处理依赖能避免系统库和conda库冲突:
- 打开终端,激活你的conda环境(如果用的是base环境可跳过这步):
conda activate base - 安装适配R 3.4.0的ncdf4包,指定conda-forge频道(老版本包在这里更全):
这里指定版本1.16是因为它是兼容R 3.4.x的稳定版本,太新的ncdf4会要求更高的R版本。conda install -c conda-forge r-ncdf4=1.16
方案2:先装netCDF开发库,再在R中编译安装
如果方案1不行,先给conda环境补上netCDF的C开发库,再让R找到它:
- 终端安装netCDF开发包(包含编译需要的头文件和库文件):
conda install -c conda-forge netcdf-c netcdf-cxx4 - 启动R,指定netCDF的安装路径来安装ncdf4:
这里的路径是你的Anaconda根目录,netCDF的库和头文件会默认放在这个目录下。install.packages("ncdf4", configure.args = "--with-netcdf=/root/anaconda3")
方案3:安装指定版本的ncdf4源码包
如果上面的方法还是失败,可能是默认下载的ncdf4版本太新,不兼容R 3.4.0,直接安装适配的旧版本:
在R中运行以下命令,下载并安装兼容的旧版本源码包:
install.packages("https://cran.r-project.org/src/contrib/Archive/ncdf4/ncdf4_1.16.tar.gz", repos = NULL, type = "source")
这个2018年发布的版本,完美适配R 3.4.x系列。
内容的提问来源于stack exchange,提问作者Milton_Yu
相关产品推荐
相关产品推荐

