При создании файла общего объекта (.so) на платформе Linux MATLAB ® использует версии библиотек GLIBC и GLIBCXX (GLIBC++), поставляемые операционной системой (OS). Это означает, что при запуске этих моделей в эквивалентной ОС другого поставщика могут возникнуть проблемы совместимости, которые препятствуют запуску модели.
Поддерживаемые версии библиотек для различных ОС
| ОС Linux | Версия библиотеки GLIBC | Версия библиотеки GLIBCXX | Версия библиотеки GCC |
|---|---|---|---|
| Debian 9 | 2.24-11 | 3.4.22 | 6.3 |
| Debian 10 | 2.28-10 | 3.4.25 | 8.3 |
| RedHat 6.6 | 2.12 | 3.4.13 | 4.4.7 |
| RedHat 7.7 | 2.17 | 3.4.19 | 4.8.5 |
| SUSE 11.4 | 2.11.3 | — | 4.3.4 |
| SUSE 12.3 | 2.19 | — | 4.8 |
| SUSE 12.4 | 2.22 | — | 4.8 |
При создании файла .so компилятор использует только последнюю версию GLIBC/GLIBCXX для каждой отдельной библиотечной функции. В то время как последняя версия Debian 10 GLIBC 2.28, SerDes Toolbox™ использует только подмножество библиотек GLIBC. В зависимости от используемых блоков может потребоваться только версия 2.12.
Например, сгенерированный файл .so для случайной модели Rx AMI на Debian 10 требует следующих библиотек:
0x08922974 0x00 05 GLIBCXX_3.4
0x06969194 0x00 04 GLIBC_2.14
0x09691a75 0x00 03 GLIBC_2.2.5
0x09691a75 0x00 02 GLIBC_2.2.5
Этот общий объект может выполняться в любой системе с GLIBC версии 2.14 или более поздней и GLIBCXX версии 3.4 или более поздней. Это означает, что этот общий объект может выполняться в RedHat 7.7, но не в RedHat 6.6.
Примечание
Это относится только к общим объектам Linux. Windows требует, чтобы библиотеки Universal C Runtime были совместимы только с версиями ALL GLIBC/GLIBCXX.
Простым решением для создания общих объектов в более ранней версии Linux, чем официально поддерживаемая в MATLAB, является экспорт файла .so на полностью поддерживаемую платформу, а затем ручное выполнение сборки на более ранней версии. Для этого:
Перейдите в каталог построения передатчика или приемника, обозначенный Tx_ert_rtw и Rx_ert_rtwсоответственно.
В командной строке введите следующую команду:
make –f Tx.mk
make –f Rx.mk
Созданные общие объекты находятся в одном каталоге над каталогом построения (../Tx.so для передатчика и ../Rx.so для приемника.)
Скопируйте файл .so в полное имя, используемое SerDes Toolbox.
Примечание
Для создания общего объекта вручную требуется лицензия Simulink ® Coder™ или Embedded Coder ®.
Список поддерживаемых версий Linux см. в разделе Предыдущие версии: системные требования и поддерживаемые компиляторы.