Comment j'ai résolu l'erreur Matlab/Simulink S-Function : mexa64: GLIBCXX_3.4.xx not found

Problème

En essayant d’exécuter un modèle Simulink qui utilise une S-Function compilée avec mex, j’ai rencontré l’erreur suivante :

Solution

Cette erreur se produit car la version de libstdc++.so.6 que Matlab utilise (/opt/matlab/R2025a/sys/os/glnxa64/libstdc++.so.6 dans ce cas) est plus ancienne que celle requise par la S-Function compilée (qui est utilisée lors de la compilation avec mex).

Dans mon cas, Matlab est livré avec GLIBCXX_3.4.30 mais ma libstdc++ système est GLIBCXX_3.4.32. C’est une incompatibilité très mineure, la bibliothèque système est légèrement plus récente (Ubuntu 24.04 LTS, 2025-08-06).

J’ai résolu ce problème en supprimant le fichier libstdc++.so.6 dans le répertoire Matlab car il fonctionne tout aussi bien avec le fichier libstdc++.so.6 du système.

Avant d’essayer cette solution, assurez-vous d’avoir une sauvegarde du fichier original.

Après cela, vous devez redémarrer Matlab et également recompiler votre S-Function avec mex. L’erreur devrait avoir été résolue après cela.


Check out similar posts by category: Matlab/Simulink