您的位置:首页 > 其它

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

2016-10-21 17:09 363 查看

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ubuntu yael inria 编译