2011-12-15 17 views
8

私のコンピュータには、gcc 4.4.4でUbuntu 10.10があります。私はエラーを取り除くことができ、GCC 4.2.3を使ってMATLABをリンクすることによって想定し、私は方法がわからないMatlabに希望の古いgccバージョンを提供するには?

>> cns_build('hmax') 
compiling... 
/home/leMe/hmax/cns/source/common_dec.h(54): warning: omission of exception specification is incompatible with previous function "operator new(size_t)" 
/usr/include/c++/4.4/new(91): here 
/home/leMe/hmax/cns/source/common_dec.h(55): warning: omission of exception specification is incompatible with previous function "operator new[](size_t)" 
/usr/include/c++/4.4/new(92): here 
/home/leMe/hmax/cns/source/common_dec.h(56): warning: omission of exception specification is incompatible with previous function "operator delete(void *)" 
/usr/include/c++/4.4/new(93): here 
/home/leMe/hmax/cns/source/common_dec.h(57): warning: omission of exception specification is incompatible with previous function "operator delete[](void *)" 
/usr/include/c++/4.4/new(94): here 

Segmentation fault 
CUDA preprocessing [nvcc] failed 
Warning: You are using gcc version "4.4.4-14ubuntu5)". The version 
     currently supported with MEX is "4.2.3". 
     For a list of currently supported compilers see: 
     http://www.mathworks.com/support/compilers/current_release/ 
CPU compilation successful 

:私はCUDAを使用する一部のMEXファイルをコンパイルしようと、私は次のエラーメッセージが表示されますそれをするために。

mex -setupは私にオプションを以下与える:

1: /home/leMe/Matlab/bin/gccopts.sh : 
     Template Options file for building gcc MEX-files 

    2: /home/leMe/Matlab/bin/mexopts.sh : 
     Template Options file for building MEX-files via the system ANSI compiler 

答えて

9

を私は(私のためにそれがglnxa64だ)、私のmexopts.sh fileを変更することによってそれを解決し~/matlab/R2009b/mexopts.sh(あなたのMatlabのバージョンと変化する)

であなたのアーキテクチャを探しますこれを次のように変更します。

 ;; 
    glnxa64) #<----------------------- FIND THIS 
     RPATH="-Wl,-rpath-link,$TMW_ROOT/bin/$Arch" 
     # StorageVersion: 1.0 
     # CkeyName: GNU C 
     # CkeyManufacturer: GNU 
     # CkeyLanguage: C 
     # CkeyVersion: 
     CC='gcc-4.1' #<---------------------------------- CHANGE HERE 
     CFLAGS='-ansi -D_GNU_SOURCE' 
     CFLAGS="$CFLAGS -fexceptions" 
     CFLAGS="$CFLAGS -fPIC -fno-omit-frame-pointer -pthread" 
     CLIBS="$RPATH $MLIBS -lm" 
     COPTIMFLAGS='-O -DNDEBUG' 
     CDEBUGFLAGS='-g' 
     CLIBS="$CLIBS -lstdc++" 
     # 
     # C++keyName: GNU C++ 
     # C++keyManufacturer: GNU 
     # C++keyLanguage: C++ 
     # C++keyVersion: 
     CXX='g++-4.1' #<---------------------------------- CHANGE HERE 
     CXXFLAGS='-ansi -D_GNU_SOURCE' 
     CXXFLAGS="$CXXFLAGS -fPIC -fno-omit-frame-pointer -pthread" 
     CXXLIBS="$RPATH $MLIBS -lm" 
     CXXOPTIMFLAGS='-O -DNDEBUG' 
     CXXDEBUGFLAGS='-g' 

PS:正しいバージョンのgccもインストールする必要があります

+0

試しましたか?それは動作しましたか? – Oli

+0

今日はやってみよう! – Framester

+0

gcc4.2.3のインストールに失敗しました。私はこれを解決するとすぐにあなたの答えを試してみます。 – Framester

関連する問題