错误构建MEX-文件(MATLAB 2012A)上的Kubuntu“的/ usr / bin中/ LD:找不到可以-lstdc ++” [英] Error building MEX-files (MATLAB 2012a) on Kubuntu '/usr/bin/ld: cannot find -lstdc++'

查看:673
本文介绍了错误构建MEX-文件(MATLAB 2012A)上的Kubuntu“的/ usr / bin中/ LD:找不到可以-lstdc ++”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图建立matlab的2012A C程序,通过命令:

  

MEX mat_trans2.c

和我得到这个错误:

 的/ usr / bin中/ LD:找不到-lstdc ++
collect2:劳工处返回1退出状态

    MEX:对mat_trans2.mexa64链接失败。

使用MEX错误(行206)
无法顺利完成。
 

前段时间,我是能够建立.c文件,我不知道发生了什么吧!也许有些事情在我的Kubuntu 12.04 64位系统升级后更改。

有没有人谁知道如何解决这个问题?

感谢您!!!!

编辑:我编辑的消息在夏嘉曦回复。 运行:

  

MEX -v mat_trans2.c

我得到:

  ************** ************************************
  警告:无论-compatibleArrayDims也不-largeArrayDims被选中。
           使用-compatibleArrayDims。在未来,MATLAB将需要
           使用-largeArrayDims和删除-compatibleArrayDims
           选项​​。欲了解更多信息,请参阅:
           http://www.mathworks.com/help/techdoc/matlab_external/bsflnue-1.html
************************************************** ************************

/主页/马法尔达/ MATLAB /斌/ MEX:1:/home/mafalda/MATLAB/bin/util/oscheck.sh:/lib64/libc.so.6:未找到
/主页/马法尔达/ MATLAB /斌/ MEX:1:/home/mafalda/MATLAB/bin/util/oscheck.sh:/lib64/libc.so.6:未找到
 - > mexopts.sh从目录源(DIR = $preF_DIR)
   FILE = /home/mafalda/.matlab/R2012a/mexopts.sh
-------------------------------------------------- --------------
 - > MATLAB = /家庭/马法尔达/ MATLAB
 - > CC = GCC-4.4
 - > CC标志:
         CFLAGS = -ansi -D_GNU_SOURCE -fexceptions -fPIC -fno-省略帧指针-pthread
         CDEBUGFLAGS = -g
         COPTIMFLAGS = -O -DNDEBUG
         CLIBS = -Wl,-rpath链接为/ home /马法尔达/ MATLAB /斌/ glnxa64 -L /家庭/马法尔达/ MATLAB /斌/ glnxa64 -lmx -lmex -lmat -lm -lstdc ++
         参数= -DMX_COMPAT_32
 - > CXX = G ++  -  4.4
 - > CXX标志:
         CXXFLAGS = -ansi -D_GNU_SOURCE -fPIC -fno-省略帧指针-pthread
         CXXDEBUGFLAGS = -g
         CXXOPTIMFLAGS = -O -DNDEBUG
         CXXLIBS = -Wl,-rpath链接为/ home /马法尔达/ MATLAB /斌/ glnxa64 -L /家庭/马法尔达/ MATLAB /斌/ glnxa64 -lmx -lmex -lmat -lm
         参数= -DMX_COMPAT_32
 - > FC = gfortran-4.4
 - > FC标志:
         FFLAGS = -fexceptions -fbackslash -fPIC -fno-省略帧指针
         FDEBUGFLAGS = -g
         FOPTIMFLAGS = -O
         FLIBS = -Wl,-rpath链接为/ home /马法尔达/ MATLAB /斌/ glnxa64 -L /家庭/马法尔达/ MATLAB /斌/ glnxa64 -lmx -lmex -lmat -lm
         参数= -DMX_COMPAT_32
 - > LD = GCC-4.4
 - >链接标志:
         LDFLAGS = -pthread -shared轮候册, - 版本脚本/家庭/马法尔达/ MATLAB /的extern / lib中/ glnxa64 / mexFunction.map轮候册, - 没有不确定
         LDDEBUGFLAGS = -g
         LDOPTIMFLAGS = -O
         LDEXTENSION = .mexa64
         参数=
 - > LDCXX =
 - >链接标志:
         LDCXXFLAGS =
         LDCXXDEBUGFLAGS =
         LDCXXOPTIMFLAGS =
         LDCXXEXTENSION =
         参数=
-------------------------------------------------- --------------

 - > GCC-4.4 -c -I /家庭/马法尔达/ MATLAB / EXTERN /包括-I /家庭/马法尔达/ Matlab / Simulink /包括-DMATLAB_MEX_FILE -ansi -D_GNU_SOURCE -fexceptions -fPIC -fno-省略帧指针-pthread  - DMX_COMPAT_32 -O -DNDEBUGmat_trans2.c

 - > GCC-4.4 -O -pthread -shared轮候册, - 版本脚本/家庭/马法尔达/ MATLAB /的extern / lib中/ glnxa64 / mexFunction.map轮候册, - 无未定义-omat_trans2.mexa64mat_trans2的.o -Wl,-rpath链接为/ home /马法尔达/ MATLAB /斌/ glnxa64 -L /家庭/马法尔达/ MATLAB /斌/ glnxa64 -lmx -lmex -lmat -lm -lstdc ++

在/ usr /斌/劳工处:找不到-lstdc ++
collect2:劳工处返回1退出状态

    MEX:对mat_trans2.mexa64链接失败。

使用MEX错误(行206)
无法顺利完成。
 

我想说的问题是,/lib64/libc.so.6:无法找到

加:

 定位的libstdc ++。so.6
/home/mafalda/MATLAB/bin/glnxa64/libstdc++.so.6
/home/mafalda/MATLAB/bin/glnxa64/libstdc++.so.6.0.13
/home/mafalda/MATLAB/sys/os/glnxa64/libstdc++.so.6
/home/mafalda/MATLAB/sys/os/glnxa64/libstdc++.so.6.0.16
/home/mafalda/MATLAB/tool​​box/edalink/foundation/hdllink/scripts/linux32/libstdc++.so.6
/home/mafalda/MATLAB/tool​​box/edalink/foundation/hdllink/scripts/linux32/libstdc++.so.6.0.13
/home/mafalda/MATLAB/tool​​box/sldv/sldv/polyspace-dvo/lib/x86-linux/libstdc++.so.6
/usr/lib/i386-linux-gnu/libstdc++.so.6
/usr/lib/i386-linux-gnu/libstdc++.so.6.0.16
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16
/usr/lib32/libstdc++.so.6
/usr/lib32/libstdc++.so.6.0.16
 

解决方案

琐碎的解决方案,我没有检查最明显的事情:

  

$命令和apt-get安装的libstdc ++ 6-4.4-dev的

I'm trying to build a C program on Matlab 2012a, through the command:

mex mat_trans2.c

And I'm getting this error:

/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status

    mex: link of ' "mat_trans2.mexa64"' failed.

Error using mex (line 206)
Unable to complete successfully.

Some time ago I was able to build .c files, I don't know what is happening now! Maybe something has changed after a system upgrade on my Kubuntu 12.04 64 bit.

Is there someone who know how to solve this?

Thank you!!!!

Edit: I edit the message to reply at Shai. Running:

mex -v mat_trans2.c

I get:

**************************************************************************
  Warning: Neither -compatibleArrayDims nor -largeArrayDims is selected. 
           Using -compatibleArrayDims. In the future, MATLAB will require
           the use of -largeArrayDims and remove the -compatibleArrayDims
           option. For more information, see:
           http://www.mathworks.com/help/techdoc/matlab_external/bsflnue-1.html
**************************************************************************

/home/mafalda/MATLAB/bin/mex: 1: /home/mafalda/MATLAB/bin/util/oscheck.sh: /lib64/libc.so.6: not found
/home/mafalda/MATLAB/bin/mex: 1: /home/mafalda/MATLAB/bin/util/oscheck.sh: /lib64/libc.so.6: not found
-> mexopts.sh sourced from directory (DIR = $PREF_DIR)
   FILE = /home/mafalda/.matlab/R2012a/mexopts.sh
----------------------------------------------------------------
->    MATLAB                = /home/mafalda/MATLAB
->    CC                    = gcc-4.4
->    CC flags:
         CFLAGS             = -ansi -D_GNU_SOURCE  -fexceptions -fPIC -fno-omit-frame-pointer -pthread
         CDEBUGFLAGS        = -g
         COPTIMFLAGS        = -O -DNDEBUG
         CLIBS              = -Wl,-rpath-link,/home/mafalda/MATLAB/bin/glnxa64 -L/home/mafalda/MATLAB/bin/glnxa64 -lmx -lmex -lmat -lm -lstdc++
         arguments          =  -DMX_COMPAT_32
->    CXX                   = g++-4.4
->    CXX flags:
         CXXFLAGS           = -ansi -D_GNU_SOURCE -fPIC -fno-omit-frame-pointer -pthread
         CXXDEBUGFLAGS      = -g
         CXXOPTIMFLAGS      = -O -DNDEBUG
         CXXLIBS            = -Wl,-rpath-link,/home/mafalda/MATLAB/bin/glnxa64 -L/home/mafalda/MATLAB/bin/glnxa64 -lmx -lmex -lmat -lm
         arguments          =  -DMX_COMPAT_32
->    FC                    = gfortran-4.4
->    FC flags:
         FFLAGS             = -fexceptions -fbackslash -fPIC -fno-omit-frame-pointer
         FDEBUGFLAGS        = -g
         FOPTIMFLAGS        = -O
         FLIBS              = -Wl,-rpath-link,/home/mafalda/MATLAB/bin/glnxa64 -L/home/mafalda/MATLAB/bin/glnxa64 -lmx -lmex -lmat -lm
         arguments          =  -DMX_COMPAT_32
->    LD                    = gcc-4.4
->    Link flags:
         LDFLAGS            = -pthread -shared -Wl,--version-script,/home/mafalda/MATLAB/extern/lib/glnxa64/mexFunction.map -Wl,--no-undefined
         LDDEBUGFLAGS       = -g
         LDOPTIMFLAGS       = -O
         LDEXTENSION        = .mexa64
         arguments          = 
->    LDCXX                 = 
->    Link flags:
         LDCXXFLAGS         = 
         LDCXXDEBUGFLAGS    = 
         LDCXXOPTIMFLAGS    = 
         LDCXXEXTENSION     = 
         arguments          = 
----------------------------------------------------------------

-> gcc-4.4 -c  -I/home/mafalda/MATLAB/extern/include -I/home/mafalda/MATLAB/simulink/include -DMATLAB_MEX_FILE -ansi -D_GNU_SOURCE  -fexceptions -fPIC -fno-omit-frame-pointer -pthread  -DMX_COMPAT_32 -O -DNDEBUG  "mat_trans2.c"

-> gcc-4.4 -O -pthread -shared -Wl,--version-script,/home/mafalda/MATLAB/extern/lib/glnxa64/mexFunction.map -Wl,--no-undefined -o  "mat_trans2.mexa64"  mat_trans2.o  -Wl,-rpath-link,/home/mafalda/MATLAB/bin/glnxa64 -L/home/mafalda/MATLAB/bin/glnxa64 -lmx -lmex -lmat -lm -lstdc++

/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status

    mex: link of ' "mat_trans2.mexa64"' failed.

Error using mex (line 206)
Unable to complete successfully.

I would say the problem is that /lib64/libc.so.6: cannot be found

Plus:

locate libstdc++.so.6
/home/mafalda/MATLAB/bin/glnxa64/libstdc++.so.6
/home/mafalda/MATLAB/bin/glnxa64/libstdc++.so.6.0.13
/home/mafalda/MATLAB/sys/os/glnxa64/libstdc++.so.6
/home/mafalda/MATLAB/sys/os/glnxa64/libstdc++.so.6.0.16
/home/mafalda/MATLAB/toolbox/edalink/foundation/hdllink/scripts/linux32/libstdc++.so.6
/home/mafalda/MATLAB/toolbox/edalink/foundation/hdllink/scripts/linux32/libstdc++.so.6.0.13
/home/mafalda/MATLAB/toolbox/sldv/sldv/polyspace-dvo/lib/x86-linux/libstdc++.so.6
/usr/lib/i386-linux-gnu/libstdc++.so.6
/usr/lib/i386-linux-gnu/libstdc++.so.6.0.16
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16
/usr/lib32/libstdc++.so.6
/usr/lib32/libstdc++.so.6.0.16

解决方案

Trivial solution, I hadn't check the most obvious thing:

$ sudo apt-get install libstdc++6-4.4-dev

这篇关于错误构建MEX-文件(MATLAB 2012A)上的Kubuntu“的/ usr / bin中/ LD:找不到可以-lstdc ++”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆