解决Ubuntu 18.04 gdal源码安装出现的致命问题!CURL_OPENSSL_4

在Ubuntu18.04系统中安装GDAL3.1.2后,遇到ROS catkin_make时关于libgdal.so的curl链接错误。尝试安装libcurl库无效,甚至卸载并重新安装GDAL也无法解决问题。最终通过删除GDAL并重新配置编译选项--without-curl解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在Ubuntu18.04系统下安装gdal3.1.2,虽然按照网上的教程能够编译成功,但是在ros下使用catkin_make的时候一直报告如下错误:

libgdal.so: undefined reference to 'curl_easy_getinfo@CURL_OPENSSL_4'

libgdal.so: undefined reference to 'curl_multi_perform@CURL_OPENSSL_4'

libgdal.so: undefined reference to 'curl_multi_cleanup@CURL_OPENSSL_4'

libgdal.so: undefined reference to 'curl_mime_init@CURL_OPENSSL_4'

libgdal.so: undefined reference to 'curl_multi_remove_handle@CURL_OPENSSL_4'

libgdal.so: undefined reference to 'curl_mime_addpart@CURL_OPENSSL_4'

libgdal.so: undefined reference to 'curl_mime_name@CURL_OPENSSL_4'

libgdal.so: undefined reference to 'curl_multi_info_read@CURL_OPENSSL_4'

libgdal.so: undefined reference to 'curl_easy_setopt@CURL_OPENSSL_4'

libgdal.so: undefined reference to 'curl_mime_filedata@CURL_OPENSSL_4'

libgdal.so: undefined reference to 'curl_mime_free@CURL_OPENSSL_4'

libgdal.so: undefined reference to 'curl_easy_cleanup@CURL_OPENSSL_4'

libgdal.so: undefined reference to 'curl_easy_perform@CURL_OPENSSL_4'

libgdal.so: undefined reference to 'curl_easy_init@CURL_OPENSSL_4'

libgdal.so: undefined reference to 'curl_multi_add_handle@CURL_OPENSSL_4'

libgdal.so: undefined reference to 'curl_slist_free_all@CURL_OPENSSL_4'

libgdal.so: undefined reference to 'curl_slist_append@CURL_OPENSSL_4'

libgdal.so: undefined reference to 'curl_version@CURL_OPENSSL_4'

libgdal.so: undefined reference to 'curl_multi_setopt@CURL_OPENSSL_4'

libgdal.so: undefined reference to 'curl_mime_data@CURL_OPENSSL_4'

libgdal.so: undefined reference to 'curl_multi_init@CURL_OPENSSL_4'

libgdal.so: undefined reference to 'curl_multi_wait@CURL_OPENSSL_4'

查了大量的资料,试过

sudo apt install libcurl4-openssl-dev
sudo apt install -y libcurl4 curl

但是发现并不行,还是没有解决问题,包括卸了libcurl4-dev,最后把ros都卸载了还是不能解决问题!最后就把目光集中在了gdal身上,使用如下命令查看libdal.so位置

ldconfig -p | grep libgdal

然后使用以下命令查看libgdal.so对与curl依赖的是哪个.so文件

ldd /usr/local/lib/libgdal.so | grep curl

输出如下:

libcurl.so.4 => /usr/lib/x86_64-linux-gnu/libcurl.so.4
libcurl-gnutls.so.4 => /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4

给我的感觉就是应该是gdal的安装环境被我搞坏了,导致gdal.so的依赖出了问题,所以我果断卸载gdal,使用如下命令清除:

sudo rm -rf /usr/local/bin/gdal* /usr/local/lib/libgdal* /usr/lib/libgdal*

需要注意的是:我没有把gdal安装在build文件下,而是直接让其默认安装的。

然后删除掉我的gdal-3.1.5的文件夹,之后重新解压出一个新的gdal-3.1.5的文件夹,执行如下命令:

cd gdal-3.1.5/
./configure --with-proj=/usr/local --prefix=/usr/local --with-tiff=no --with-local=/usr/local --without-curl
make -j4
sudo make install

安装完成之后就可以正常使用了!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值