Linux环境下MatlabR2014a中运行voc-Release5的过程

Linux环境:Ubantu14.04LTS

Matlab版本:MatlabR2014a

环境:gcc-4.7,g++-4.7

voc版本:VOC-Release5(https://people.eecs.berkeley.edu/~rbg/latent/index.html)


1)首先要搭好环境

假设所需要的前提条件已经完成并且已经解压了voc-release5,命令里面输入gcc -v 和g++ -v,查看是否是4.7版本

(由于Ubantu14.04系统自带的gcc和g++都是4.8的版本)

如果当前不是4.7的版本,需要通过sudo apt-get install gcc-4.7和sudo apt-get install g++-4.7进行安装


安装好了之后,然后还需修改优先级(可能4.8的版本还在)


sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.7 100 

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50 

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 100 

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50


2)试运行matlab并尝试运行demo

sudo matlab 打开matlab软件,然后将matlab的工作目录切换到voc的解压目录,运行下demo,还是可能会出现问题

对于出现在compile.m中的错误建议修改如下:

eval([mexcmd' gdetect/fconvsse.cc -o fconv']);

eval([mexcmd' gdetect/fconv_var_dim_MT.cc -o fconv_var_dim']);

http://www.cnblogs.com/louyihang-loves-baiyan/p/4958685.html

(参考:http://www.cnblogs.com/louyihang-loves-baiyan/p/4958685.html)

1、然后可能还会报出不支持的编译器等信息( Error using mex No supported compiler or SDK was found 
),这样的话需要进行如下的操作:
将/usr/local/MATLAB/R2014a/bin/mexopts.sh中的cc修改为gcc-4.7和cxx修改为g++-4.7,可能会由于权限问题不能成功保存在原处,需要另存在别处,然后通过命令将其copy到~/.matlab/R2014a(本人同时尝试了将其copy到~/.matlab/,两个方法都尝试了都没报错,所以不知道哪个起作用的

参考:http://cn.mathworks.com/matlabcentral/answers/137228-setup-mex-compiler-for-r2014a-for-linux


2、对于matlab中运行demo出错信息为: cannot load any more object with static TLS 

 解决办法是:在Matlab中设置Preferences -> General ->Java-Heap Memory, 增加Java内存即可。

参考文献里面还提供了好多种解决办法。这是Matlab的一个BUG, 现在他们正在解决。对于我们用户来说,最好的办法那就是上面这一个了。 
(参考:http://www.cnblogs.com/tornadomeet/p/3482997.html)

然后就可以愉快地运行voc-release5的demo等文件了^^

另外:在Linux下的matlab中运行的voc5被大神移植到了windows平台:
http://wenku.baidu.com/link?url=3yXuGSy5LYvbXS-xqkValBYKiQTGQd90faXSZ0qYlYWtDO2XqZsJNDMd3XstFaFZqaYusdOJvI0nEfJLWzqqol2tA6UPubjBc4MA5VLY3Q3&qq-pf-to=pcqq.c2c
有兴趣的可以研究下。





你可能感兴趣的:(matlabR2014a,Ubantu14.04,Voc-release5)