Wie ich den Matlab/Simulink S-Function-Fehler gelöst habe: mexa64: GLIBCXX_3.4.xx not found

Problem

Beim Versuch, ein Simulink-Modell auszuführen, das eine mit mex kompilierte S-Function verwendet, trat der folgende Fehler auf:

Lösung

Dieser Fehler tritt auf, weil die Version von libstdc++.so.6, die Matlab verwendet (in diesem Fall /opt/matlab/R2025a/sys/os/glnxa64/libstdc++.so.6), älter ist als die, die von der kompilierten S-Function benötigt wird (die während der Kompilierung mit mex verwendet wird).

In meinem Fall kommt Matlab mit GLIBCXX_3.4.30, aber meine System-libstdc++ ist GLIBCXX_3.4.32. Dies ist eine sehr geringfügige Abweichung, die Systembibliothek ist nur minimal neuer (Ubuntu 24.04 LTS, 2025-08-06).

Ich habe dieses Problem gelöst, indem ich die libstdc++.so.6-Datei im Matlab-Verzeichnis gelöscht habe, da es auch mit der libstdc++.so.6-Datei des Systems genauso gut funktioniert.

Bevor Sie diese Lösung versuchen, stellen Sie sicher, dass Sie ein Backup der Originaldatei haben.

Danach müssen Sie Matlab neu starten und auch Ihre S-Function mit mex neu kompilieren. Der Fehler sollte danach behoben sein.


Check out similar posts by category: MATLAB/Simulink