Simulink S-FunctionにパックしたいC++ルーチンがあります。このC++ルーチンは、他のいくつかのC++ファイルにある他のルーチンを呼び出します。Simulink S-Function with C++コードはコンパイルされますが、生成/設定時にエラーが発生します
legacy_codeツールを使用してすべてをコンパイルすることができました(つまり、mexglxファイルが生成されました)。ただし、次の警告が発行されます。
Warning: You are using gcc version "4.4.4-14ubuntu5)". The earliest gcc version
supported with mex is "4.1". The latest version tested for use with mex
is "4.2". To download a different version of gcc, visit http://gcc.gnu.org
私は、コマンドを発行することにより、S-Functionブロックを生成しようとすると問題が発生:この時点で
legacy_code('slblock_generate', def);
、GLIBCXXに言及し、次のエラーをバージョンが呼び出されました:
??? Error using ==> iAddSfunctionBlock at 183
Error due to multiple causes.
Error in ==>
/opt/matlab/toolbox/simulink/simulink/+legacycode/@LCT/generateslblock.p>
generateslblock at 55
Error in ==> /opt/matlab/toolbox/simulink/simulink/legacy_code.p>legacy_code at
160
Caused by:
Error using ==> iAddSfunctionBlock at 183
Invalid MEX-file 'sfun_vectorRotation_b.mexglx':
/opt/matlab/bin/glnx86/../../sys/os/glnx86/libstdc++.so.6: version
`GLIBCXX_3.4.11' not found (required by sfun_vectorRotation_b.mexglx).
Error using ==> iAddSfunctionBlock at 183
Error while obtaining sizes from MEX S-function 'sfun_vectorRotation_b' in
'untitled1/sfun_vectorRotation_b'. MATLAB error message:
Invalid MEX-file 'sfun_vectorRotation_b.mexglx':
/opt/matlab/bin/glnx86/../../sys/os/glnx86/libstdc++.so.6: version
`GLIBCXX_3.4.11' not found (required by sfun_vectorRotation_b.mexglx).
正直私はこの時点で少し失われています。私はg ++コンパイラのダウングレードが十分であるか、他に何かをしなければならないかどうかはわかりません。この問題の解決策はありますか?
私はUbuntuの10.10 OS、およびg ++バージョンでのMatlab 2009bは使用しています:
g++ (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5
事前にどうもありがとう
ミケル