【问题标题】:GLIBCXX not found when compiling vtk example under mex在 mex 下编译 vtk 示例时找不到 GLIBCXX
【发布时间】:2012-01-15 08:11:59
【问题描述】:

我一直在尝试关注 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?我会假设它会默认包含在编译中。

【问题讨论】:

    标签: c++ glibc mex vtk


    【解决方案1】:

    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 
    

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

    【讨论】:

    • +1 绝对正确。我只是假设较新的编译器不会成为问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    • 2020-09-16
    • 1970-01-01
    相关资源
    最近更新 更多