红联Linux门户
Linux帮助

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

发布时间:2016-10-23 09:21:00来源:linux网站作者:老子今晚不加班
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 来看一下版本是否改变了。
可以参考:
ubuntu14.04编译yael v438遇到的一些问题
 
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
 
本文永久更新地址:http://www.linuxdiyf.com/linux/25294.html