2011-12-07 8 views
4

mex를 사용하여 vtk를 컴파일 할 때 우분투 11.10에서 this example을 따르려고했습니다. 나는 .mexa64 파일이mex에서 vtk 예제를 컴파일 할 때 GLIBCXX를 찾을 수 없습니다.

mex -I/usr/include/vtk-5.6 vtk_file.cpp -L/usr/lib/ -lvtkFiltering -lvtkRendering -lvtkCommon 

컴파일 한 후 다음과 같이 내가 사용하는 MEX 명령입니다.

나는 다음과 같은 오류와 끝까지 파일 실행하려고하면

그러나 을 :

Invalid MEX-file '/home/bill/Documents/MATLAB/vtk/vtk_file.mexa64': 
/usr/local/MATLAB/R2011b/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: 
version `GLIBCXX_3.4.11' not found (required by /usr/lib/libvtkFiltering.so.5.6) 

어떻게 그 glibcxx을 보장 할 수 있습니다를 발견? 나는 그것이 컴파일에서 기본적으로 포함될 것이라고 생각했을 것이다.

답변

12

Matlab은 자체 glibc 라이브러리를 사용하기 때문에 종종 혼란 스럽습니다.

이 문제를 해결하려면 먼저 matlab에서 지원 버전의 gcc을 사용하도록해야합니다. 컴파일 할 때 경고 메시지가 나옵니까?

cd /usr/local/MATLAB/R2011a/sys/os/glnxa64 
sudo mkdir old 
sudo mv libstdc++.so.6* old 
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 

많은 사람들이 그것에 대해 불평 : 당신이 sudoer 경우

, 당신은 또한 (내가 그것을했다, 그리고 그것을 잘 작동) 그런 일을 수행하여, 표준의 glibc를 사용하는 MATLAB을 "강제로"수 그 두 가지가 작동하지 않으면 인터넷에서 다른 해결책이 있습니다.

+1

+1 절대적으로 적합합니다. 방금 새로운 컴파일러가 문제가되지 않을 것이라고 생각했습니다. –

+0

아주 좋은 해결책! – Rasoul

관련 문제