ubuntu14.04编译yael v438 遇到的一些问题

Yael

Yael is a library implementing computationally intensive functions used in large scale image retrieval, such as neighbor search, clustering and inverted files. The library offers interfaces for C, Python and Matlab.

编译环境

操作系统:Ubuntu 14.04 LTS
编译器: gcc 4.7
Maltab: Matlab R2014b

遇到的问题

1.ubuntu 14.04自带的编译器是gcc4.8 ,编译的时候提示warning 不支持gcc4.8 ,虽然是warning,出于谨 慎考虑,还是安装了gcc4.7。

在命令行输入gcc -v
可以获得的信息如下
gcc version 4.8
如果我们想使用gcc4.7怎么办?首先看看有没有安装gcc4.7,
ls /usr/bin/gcc*
结果只有/usr/bin/gcc /usr/bin/gcc-4.8两个,那么我们需要安装
sudo apt-get install gcc-4.7 gcc-4.7-multilib g++-4.7 g++-4.7-multilib
安装好后输入以下指令:
sudo update-alternatives –install /usr/bin/gcc gcc /usr/bin/gcc-4.7 50
sudo update-alternatives –install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40
接着输入:
sudo update-alternatives –config gcc
会看到如下的选项
有 3 个候选项可用于替换 gcc (提供 /usr/bin/gcc)。
0 /usr/bin/gcc-4.7 50 自动模式
1 /usr/bin/gcc-4.7 50 手动模式
2 /usr/bin/gcc-4.8 40 手动模式

要维持当前值[*]请按回车键,或者键入选择的编号:
要想用哪个gcc就输入编号吧。
同样也要设置一下g++的
sudo update-alternatives –install /usr/bin/g++ g++ /usr/bin/g++-4.7 50
sudo update-alternatives –install /usr/bin/g++ g++ /usr/bin/g++-4.8 40
如果想删除可选项的话可以键入以下指令:
sudo update-alternatives –remove gcc /usr/bin/gcc-4.7
再用gcc -v 来看一下版本是否改变了。

可以参考http://blog.csdn.net/d5224/article/details/52261529
2. unknown type name __malloc_ptr_t
这个问题在某一个版本中遇到了,但是在v438版本中应该没有了,这里提一下怎么解决的。
__malloc_ptr_t 是早期glibc中定义的类型,后面取消了,其实是一个void*指针类型。在出错的文件中

      typedef __malloc_ptr_t void* 

3. 编译matlab接口时 出现undefined reference to ‘ssaupd_’
一方面我检查了libarpack的安装,使用apt-get 安装了libarpack
另一方面检查依赖库的问题,我将configure.sh中的 arpackldflags=/usr/lib64/libarpack.so.2
改成arpackldflags=/usr/lib/libarpack.so.2
将子文件matlab中的Make.m中的 -lmwarpack从LDFLAGS中移出来,前面类似下面这种

     mex -g -largeArrayDims -DFINTEGER=long -lmwblas -lmwlapack -lmwarpack  ...

4. swig的安装问题,python的库问题
apt-get 安装swig
命令行 输入which python,可以直接判断你的python

你可能感兴趣的:(matlab,Python,矩阵)