Caffe, Invalid MEX-file libopencv_highgui.so.2.4: undefined symbol
my machine: matlabR2010b, Linux Ubuntu 14.04, I can run Caffe matlab_demo now. Here is what I did. After Install Caffe http://caffe.berkeleyvision.org/ on my Linux Machine Linux Mint based on Ubuntu 14.04 I am trying to use matlab interface mex file. Here is what I got
>>matcaffe_demo
Invalid MEX-file
'/home/Feature/caffe-master/matlab/caffe/caffe.mexa64':
/usr/local/lib/libopencv_highgui.so.2.4: undefined symbol:
_ZNK9QCheckBox15minimumSizeHintEv
Error in matcaffe_init (line 19)
if caffe('is_initialized') == 0
Error in matcaffe_demo (line 53)
matcaffe_init();
Should work now. Retry your matlabdemo_init ======= More Explanation =======
What I did to solve this problem was to check ldd between matlab and linux in Linux Command Line
ldd matlab/caffe/caffe.mexa64
on Matlab
!ldd matlab/caffe/caffe.mexa64
There are many library of which when running mex file in Matlab
points to matlab provided libraries (via symbolic links) instead of
native library. so I change all of that by
ln -s <lib.so name in native> <symbolic link lib.so name found on Matlab>
If the destination symbolic links are already exist, one must delete them before ln. For example, two of those symbolic links are qtGui.so and qtCore.so. One may just
I can run Caffe matlab_demo now. Here is what I did.
After Install Caffe http://caffe.berkeleyvision.org/ on my Linux Machine Linux Mint based on Ubuntu 14.04
I am trying to use matlab interface mex file. Here is what I got
Here is Lazy Answer
sudo ln -sf /usr/lib/x86_64-linux-gnu/libQtGui.so.4 /usr/local/MATLAB/R2012b/bin/glnxa64/libQtGui.so.4
sudo ln -sf /usr/lib/x86_64-linux-gnu/libQtCore.so.4 /usr/local/MATLAB/R2012b/bin/glnxa64/libQtCore.so.4
sudo ln -sf /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4 /usr/local/MATLAB/R2012b/bin/glnxa64/libQtOpenGL.so.4
Should work now. Retry your matlabdemo_init
======= More Explanation =======
What I did to solve this problem was to check ldd between matlab and linux
in Linux Command Line
on Matlabldd matlab/caffe/caffe.mexa64
There are many library of which when running mex file in Matlab points to matlab provided libraries (via symbolic links) instead of native library. so I change all of that by
If the destination symbolic links are already exist, one must delete them before ln.ln -s <lib.so name in native> <symbolic link lib.so name found on Matlab>
For example, two of those symbolic links are qtGui.so and qtCore.so. One may just
The way around this is to launch matlab with