Closed gongshichina closed 5 years ago
See the troubleshooting section of the wiki:
https://github.com/kyamagu/mexopencv/wiki/Troubleshooting-(UNIX)
The cause of the errors is that your MATLAB version officially supports "GCC C/C++ 4.9.x" as compilers on Linux (you are expected you to compile MEX-file using gcc-4.9 compilers). But current Ubuntu versions ship with newer versions by default (gcc-5 or gcc-6 if I recall), so you'd be using them to compile opencv/mexopencv, hence the incompatibility and missing symbols errors (the ones you've shown are mostly from the C++ runtime library).
Besides downgrading GCC, one solution is to force-load incompatible libraries, by preloading the system libs you built opencv/mexopencv against, rather than getting the ones bundled with matlab.
As explained in the wiki link above, you run something like:
$ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6:/lib/x86_64-linux-gnu/libgcc_s.so.1 matlab
You'd normally run ldd
on the mex-file both inside MATLAB and outside in the Bash terminal to find the conflicting libraries.
@amroamroamro
when I call
cv.getBuildInformation()
, it produces the following error: and whatever else function, it keeps almost the same error.At mexopencv compile stage, I use matlab 2017, it supports gcc 4.9, and I use newer gcc complied mexopencv, it made warning, and it shows mex successful finally.
And at the compiling opencv stage, when I check the output of
pkg-config
to verify the installation as the instructions, the output seems to be fine. (pkg-config --modversion opencv
andpkg-config --cflags --libs opencv
)I will appreciate it if you can reply me. THANKS !
the error output: