八度嵌入函数

我在Ubuntu 14.04机器上安装了最新的Octave。 但是,当我试图运行imread命令时,它显示以下错误消息:

octave:12> imread('newfile.png')
error: imread: invalid image file: /usr/lib/x86_64-linux-gnu/octave/3.8.1/oct/x86_64-pc-linux-gnu/__magick_read__.oct: failed to load: /usr/lib/x86_64-linux-gnu/octave/3.8.1/oct/x86_64-pc-linux-gnu/__magick_read__.oct: undefined symbol: _ZN6Magick5ColorC1Ehhh
error: called from:
error:   /usr/share/octave/3.8.1/m/image/private/__imread__.m at line 181, column 7
error:   /usr/share/octave/3.8.1/m/image/private/imageIO.m at line 66, column 26
error:   /usr/share/octave/3.8.1/m/image/imread.m at line 107, column 30

有人可以建议如何解决它?

谢谢!


按照这些步骤为我工作[作者:ChristofferCronström(hymyly)]:

安装构建八度所需的开发包。

sudo apt-get build-dep octave

获取官方源代码包。 在干净的目录中执行此操作,因为它会受到污染。

cd ~/some/suitable/directory
apt-get source octave

建立它。 这花了我大约一个小时。

cd octave-3.8.2
dpkg-buildpackage

从构建目录运行它:

./run-octave

...或者最好将它安装在官方八度音阶上:

cd ..
sudo dpkg --install octave_3.8.2-4_amd64.deb

来自:https://bugs.launchpad.net/ubuntu/+source/octave/+bug/1372202


你是如何安装Octave的? 错误提示您缺少GraphicsMagick C ++接口(包libgraphicsmagick++3 ),但是

  • 如果你从Ubuntu的软件包管理器安装了Octave,你不应该有这个问题; *如果你自己编译它,Octave应该完全禁用imread,并且你会得到一个非常不同的错误信息。
  • 所以我的猜测是你自己构建它,或者是:

  • 您自己构建的GraphicsMagick ++不再加载,您可能需要将其路径添加到动态链接器加载路径(在/etc/ld.so.conf.d./graphicsmagick或定义LD_LIBRARY_PATH );

  • 来自你曾经意外删除的包管理器的库(因为你没有从库中安装Octave,你的包管理器不会知道libgraphicsmagick ++是由于某种原因而被安装的)。

  • 无论哪种方式,解决方案都很简单。 从Ubuntu的包管理器安装Octave。 包管理者存在的主要原因之一是避免这种类型的问题,即缺少依赖关系。

    链接地址: http://www.djcxy.com/p/22125.html

    上一篇: Octave imread function

    下一篇: c++ program crashes when linked to two 3rd party shared libraries