我想在Ubuntu 16.04上用Matlab 2016a編譯matconvnet-1.0-beta20。編譯的初始階段正常工作:錯誤:未找到版本`GLIBCXX_3.4.21'
untar('http://www.vlfeat.org/matconvnet/download/matconvnet-1.0-beta20.tar.gz') ;
cd matconvnet-1.0-beta20
run matlab/vl_compilenn
當我運行vl_simplenn(network, image)
錯誤發生賦予以下錯誤:
Invalid MEX-file '/home/matconvnet-1.0-beta20/matlab/mex/vl_nnconv.mexa64':
/usr/local/MATLAB/R2016a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version
`GLIBCXX_3.4.21' not found (required by /home/matconvnet-1.0-beta20/matlab/mex/vl_nnconv.mexa64)
要了解的問題的原因,我跑/usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBC
不給任何輸出bash: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: Permission denied
也more /usr/lib/x86_64-linux-gnu/libstdc++.so.6
沒有給出輸出:
******** /usr/lib/x86_64-linux-gnu/libstdc++.so.6: Not a text file ********
我做了一些resear CH和發現了一些可能的解決方案:
The problem is that MATLAB secretly changes LD_LIBRARY_PATH on startup to point to the MATLAB version of GLIBC++, so that GLIBC++ 3.4.9 can no longer be found. The solution is to modify matlab/bin/.matlab7rc.sh so that "LDPATH_PREFIX" contains the path to the version of GLIB installed with your compiler, then this is found before the matlab-supplied library.
所以我編輯/usr/local/MATLAB/R2016a/bin/.matlab7rc.sh
和第195行修改LDPATH_PREFIX=''
到LDPATH_PREFIX='/usr/lib/x86_64-linux-gnu'
。
應用此更改後,問題仍然存在。
如建議here,我將.matlab7rc.sh複製到項目的當前工作目錄,但仍然存在錯誤。
- https://askubuntu.com/questions/719028/version-glibcxx-3-4-21-not-found
- How to tell mex to link with the libstdc++.so.6 in /usr/lib instead of the one in the MATLAB directory?
根據第一個答案,在運行此命令 ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 usr/local/MATLAB/R2014a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6
給出一個錯誤:
ln: failed to create symbolic link 'usr/local/MATLAB/R2014a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6': No such file or directory
好像第二溶液表明LD_PRELOAD
路徑.matlab7rc.sh
的變化,但它不在文件內的任何地方。
從MATLAB目錄中/usr/local/MATLAB/R2016a/bin$
我運行 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu/libstdc++.so.6
,但問題仍然存在。
也許在那裏我沒有以正確的方式應用解決方案或者也許有另一種解決方案,我沒有找到。請讓我知道,我很困惑!
http://stackoverflow.com/questions/25929332/version-glibcxx- 3-4-11-not-found-required-by-buildw-mexglx?rq = 1 - >看起來像是通過刪除libstdC++。so.6 – Woeitg