在mex下编译vtk示例时找不到GLIBCXX

时间:2011-12-07 19:59:14

标签: c++ glibc mex vtk

我一直在尝试跟随this example在Ubuntu 11.10上使用mex在MATLAB中编译vtk。我使用的mex命令如下:

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

编译后我有一个.mexa64文件。

然而,当我尝试运行该文件时,我最终得到以下错误:

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?我原以为它会默认包含在编译中。

1 个答案:

答案 0 :(得分:12)

Matlab使用自己的glibc图书馆,因此它常常是一团糟。

要解决该问题,您应首先尝试确保matlab使用支持的gcc版本。编译时是否收到警告?

如果你是sudoer,你也可以"强迫" matlab使用标准glibc,做类似的事情(我做了,它工作正常):

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 

很多人在互联网上抱怨这个问题,如果这两个问题不起作用,会有不同的解决方案。