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