如何解决'sf'安装错误:在标准或给定位置找不到proj_api.h

如何解决'sf'安装错误:在标准或给定位置找不到proj_api.h,r,centos7,sf,proj,R,Centos7,Sf,Proj,我需要在CentOS 7中为R安装sf软件包 gdal和proj的repo版本低于软件包所需的版本,因此我从源代码处安装了它们 即使链接这些库,我也总是会遇到同样的错误: configure: GDAL: 3.2.0 checking proj.h usability... no checking proj.h presence... no checking for proj.h... no checking proj_api.h usability... no checking proj_ap

我需要在CentOS 7中为R安装
sf
软件包

gdal
proj
的repo版本低于软件包所需的版本,因此我从源代码处安装了它们

即使链接这些库,我也总是会遇到同样的错误:

configure: GDAL: 3.2.0
checking proj.h usability... no
checking proj.h presence... no
checking for proj.h... no
checking proj_api.h usability... no
checking proj_api.h presence... no
checking for proj_api.h... no
configure: error: proj_api.h not found in standard or given locations.
ERROR: configuration failed for package ‘sf’
我尝试了不同的命令,从不同的来源(CRAN、GitHub、Local)得到了相同的错误

例如:

install_github("r-spatial/sf", configure.args="--with-gdal-config=/usr/local/gdal-3.2.0/bin/gdal-config --with-proj-lib=/usr/local/proj-7.2.0/lib --with-proj-include=/usr/local/proj-7.2.0/include")
proj_api.h
存在于指定路径:

locate proj_api.h
/usr/local/proj-7.2.0/include/proj_api.h

解决办法非常简单。我刚刚将
/usr/local/proj-7.2.0/include中的文件复制到
/usr/local/include
,将
/usr/local/proj-7.2.0/lib中的文件复制到
/usr/local/lib

然后我在
/etc/ld.so.conf.d
中添加了一个
.conf
文件,路径是
/usr/local/proj-7.2.0/lib
,然后运行
sudo ldconfig

似乎其他软件包在自定义位置识别
proj
sf
。特别是,此部分不执行任何操作
“--使用proj lib=/usr/local/proj-7.2.0/lib”,“使用proj include=/usr/local/proj-7.2.0/include”

安装
sf
的命令行是
install.packages(“sf”,configure.args=“--with-gdal-config=/usr/local/gdal-3.2.0/bin/gdal-config--with-geos-config=/usr/local/bin/geos-config”)
而不参考
proj


无需更改操作系统或降级库。

解决方案非常简单。我刚刚将
/usr/local/proj-7.2.0/include中的文件复制到
/usr/local/include
,将
/usr/local/proj-7.2.0/lib中的文件复制到
/usr/local/lib

然后我在
/etc/ld.so.conf.d
中添加了一个
.conf
文件,路径是
/usr/local/proj-7.2.0/lib
,然后运行
sudo ldconfig

似乎其他软件包在自定义位置识别
proj
sf
。特别是,此部分不执行任何操作
“--使用proj lib=/usr/local/proj-7.2.0/lib”,“使用proj include=/usr/local/proj-7.2.0/include”

安装
sf
的命令行是
install.packages(“sf”,configure.args=“--with-gdal-config=/usr/local/gdal-3.2.0/bin/gdal-config--with-geos-config=/usr/local/bin/geos-config”)
而不参考
proj

无需更改操作系统或降级库。

相关:。事实上,谷歌搜索还有其他几个类似的链接,其中很多都是针对centos.Related:。事实上,谷歌搜索还有其他几个类似的链接,其中许多是centos特有的。