在Ubuntu上安装LibRaw

31 篇文章 0 订阅
13 篇文章 0 订阅
本文记录了在Linux系统中手动安装LibRaw库及其依赖automake的过程,以及解决编译时遇到的错误。在安装完成后,安装并配置rawpy时遇到找不到动态库的问题,通过检查和修改编译选项,最终成功运行程序。
摘要由CSDN通过智能技术生成

项目中需要手动安装一个定制版的rawpy,在安装rawpy之前,需要安装LibRaw库。安装过程踩了一些坑,做个记录,以备后用。

LibRaw的源码下载地址:Download | LibRaw

可以根据自己的平台和需要的版本下载,我下载的是0.19版本。

下载到本地后,解压得到LibRaw-0.19.1目录,进入该目录,进行配置、编译和安装。 编译安装说明可参考该地址:Compilation and Installation | LibRaw

1. 'aclocal-1.15' is missing on your system.

第一次时,直接执行的./configure,接着make

在make时出现报错:'aclocal-1.15' is missing on your system.

 于是全盘查找aclocal:find / -name aclocal,结果并未找到。通过网络搜索,了解到该组件的作用如下:

aclocal是一个perl脚本程序,它的定义是:aclocal - create aclocal.m4 by scanning configure.ac。autoconf从configure.in这个列举编译软件时所需要的各种参数的模板文件中创建configure。autoconf需要GNU m4宏处理器来处理aclocal.m4,以生成configure脚本。

GNU官方文档上可以看到aclocal的作用:

aclocal是automake的一个组成部分,于是我们执行automake --version 查看系统中是否安装automake,发现找不到该命令,于是通过命令安装automake:

apt-get install automake-1.15

安装完执行automake --version,发现已经安装成功了:

2.  libtool:   error: you must specify an output file

安装完automake之后,执行make命令可以正常往下执行,但是执行到后面会出现题目中的错误。

网上类似错误的资料不算少,所以比较快定位到原因:可能是由于先将LibRaw的安装包下载到Windows机器上,在Windows机器上解压之后,通过FTP软件上传到Linux服务器时,导致很多shell脚本的可执行权限被取消。手动对各.sh文件添加可执行权限后仍然不行,索性把压缩包上传到服务器,然后在服务器上解压之后再执行配置、编译和安装,这次终于通过了。

3. ImportError: libraw.so.19: cannot open shared object file

LibRaw安装完成之后,接下来通过源码安装rawpy (进入rawpy源码目录,pip install -e .),安装成功。然后执行调用rawpy的Python文件时,出现找不到libraw.so的问题。

查看LibRaw的编译文档,发现默认情况下只会编译输出静态库,没有输出动态库:

于是尝试在编译LibRaw库的时候,将动态库使能:

./configure ----enable-shared

重新编译完成后,仍然会报上面的错误。到默认安装目录/usr/local/lib下查看,已经生成了.so文件,且版本也对。

按照以往经验,只有一种可能,就是该路径未加入环境变量,于是进入到/etc/ld.so.conf,将该库路径写入:

然后执行ldconfig使之生效。

再次执行应用程序,成功了!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值