Ich habe eine C++ - Routine, die ich in einer Simulink S-Funktion packen möchte. Diese C++ - Routinen rufen andere Routinen auf, die sich in mehreren anderen C++ - Dateien befinden.Simulink S-Funktion mit C++ - Code kompiliert aber gibt einen Fehler bei der Generierung/Einrichtung
Ich könnte schaffen, alles kompiliert zu haben (d. H. Die mexglx Datei wird generiert) mit dem Legacy_code Werkzeug. Jedoch wird die folgende Warnung ausgegeben:
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
Das Problem entsteht, wenn ich versuche, den S-Function-Block zu erzeugen, indem Sie den Befehl ausgeben:
legacy_code('slblock_generate', def);
An dieser Stelle zu erwähnen, die folgenden Fehler die GLIBCXX Version wird ausgelöst:
??? 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).
Ehrlich gesagt bin ich an diesem Punkt etwas verloren. Ich weiß nicht, ob das Herunterstufen des g ++ - Compilators ausreichen würde oder ob ich noch andere Dinge tun müsste. Haben Sie eine mögliche Lösung für dieses Problem?
Ich bin mit Matlab 2009b in einer Ubuntu 10.10 OS und die g ++ Version ist:
g++ (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5
Vielen Dank im Voraus
Miquel