一开始使用源码安装,遇到很多问题,主要:
1)configure时提醒需要blas和lapack
于是下载lapack-3.5.0.tgz,编译过程也是几经周折:
发现lapack包里已经包含有blas的源码。
解压:tar zxf lapack-3.5.0.tgz
cd lapack-3.5.0
先编译blas,生成librefblas.a,否则直接编译lapack的话会提示缺少librefblas.a
cd BLAS
make //得到librefblas.a
cd ..
cp make.inc.example make.inc
make
最终得到librefblas.a 和liblapack.a两个文件,复制到/usr/local/lib中
重新configure,加上--with-blas=/usr/local/lib --with-lapack=/usr/local/lib,这回
configure就没得抱怨了,让我高兴的半死,可是悲剧还在后头
2)话说我装octave是要用来做图片处理的,可是就在我使用imread加载图片的时候,该死的
octave告诉我说octave在built的时候没有开启image I/O功能,不会吧,难道要重新configure。
没办法,对我这种菜鸟,也只能如此了,查看INSTALL.OCTAVE文件并查看configure --help,
知道是configure时没有--with-magick,configure --help的提示是:--with-magick=LIB
与--with-magick=<lib>不一样,不知道什么意思,然后就各种撞墙找出路,好惨。
于是我查了下/usr/lib里是有两三个libGraphicsMagick.so.(数字文)件的,所以试了几个方法:
--with-magick=/usr/lib
--with-magick=/usr/lib/libGraphicsMagick.so.(数字)
...
搞死
还是不行
有人说百度是万能的,这回我真不信了,压根就没有搜不到解决方法,还是google救了我。
google搜到一个英文论坛,大致给我的启示,configure使用pkg-config来搜索libGraphicsMagick
的各种目录,包括libs,include等,应该就是这几行:
MAGICK_CPPFLAGS=`$PKG_CONFIG --cflags-only-I $magick++`
MAGICK_LDFLAGS=`$PKG_CONFIG --libs-only-L $magick++`
MAGICK_LIBS=`$PKG_CONFIG --libs-only-l $magick++`
所以按道理来说,不需要在--with-magick时添加目录,只需写库名就可以了,即
--with-magick=GraphicsMagick
一开始并不知道有关GraphicsMagick的库名是什么,有撞了好几次墙。不得不回顾了一下
pkg-config的作用原理,想起它需要对应的.pc文件,于是寻找所有的.pc文件,找不到。
愤怒之下,使用源码重装GraphicsMagick(之前是使用yum install GraphicsMagick直接装的)
然后,就是GraphicsMagick的各种问题了
3)安装GraphicsMagick
你想直接configure?做梦。不过我并不反对简单的先来。但这里我得先装依赖包!
重http://wiki.octave.org/Octave_for_RedHat_Systems这里了解,据说是要装:
yum install gcc gcc-c++ kernel-devel make mercurial libtool libtool-ltdl-devel libtool-ltdl autoconf cmake lapack-devel \ lapack pcre-devel readline-devel readline fftw-devel glpk-devel suitesparse suitesparse-devel gnuplot libcurl-devel zlib-devel \ flex texlive gperf 这么多!我是菜鸟,先装上试试。
好像还是不行,又上网找了几个方法:
http://blog.csdn.net/wangdogman/article/details/17957689
中的依赖包,yum install freetype gd-devel libgomp libjpeg libjpeg-devel libpng libpng-devel
最后终于configure通过,至今我仍然不知道是哪个方法拯救了我,那就继续糊涂吧,反正是行了!!
注意configure的时候要设置好--with-quantum-depth,具体见http://wiki.octave.org/GraphicsMagick
我这是用配置为:
./configure --with-quantum-depth=32 --enable-shared --disable-static --with-magick-plus-plus=yes
make make check sudo make install
成功后,在/usr/local/lib/pkgconfig中找到了几个.pc文件:
GraphicsMagick.pc GraphicsMagick++.pc GraphicsMagickWand.pc
但是使用pkg-config --cflags --libs GraphicsMagick还是提示无法找到.pc文件,于是修改环境变量
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig/
这下行了。
4) 搞定了GraphicsMagick,继续安装octave。
这里我configure的配置如下:
./configure --with-qhull-libdir=/usr/lib --with-hdf5-includedir=/usr/include \
--with-hdf5-libdir=/usr/lib --with-fftw3-includedir=/usr/include --with-fftw3-libdir=/usr/lib \
--with-fftw3f-libdir=/usr/lib --with-glpk-libdir=/usr/lib --with-curl-libdir=/usr/lib \
--with-magick=GraphicsMagick --with-blas=/usr/lib/libblas.a --with-lapack=/usr/local/lib/liblapack.a
呵呵,好多,其实可能没必要。
make
./run-octave // 这步的时候测试imread可行
make check
make install
顺利解决。
*****************************************************************
当然在centos下安装octave有更简单的方法,那就是可爱的yum。
但是这里需要先安装一个类似库的东西,就是可爱的EPEL,大概过程如下:
# wget http://url/to/latest/epel-release-X-X.noarch.rpm # yum localinstall epel-release-6-7.noarch.rpm
然后就可以,使用yum直接安装了:
yum install octave octave-devel
//这边可以参考http://wiki.octave.org/Octave_for_GNU/Linux#Red_Hat_Enterprise
*****************************************************************
给octave安装image-2.2.1.tar.gz包
装个包也不让顺利点。
根据依赖关系,要先装general包,整个过程顺序如下:
进入octave
pkg install general-1.3.4.tar.gz
pkg install control-2.6.2.tar.gz
pkg install signal-1.3.0.tar.gz
pkg install image-2.2.1.tar.gz