Совместимость версий Linux

При генерации общего файла объекта (.so) на платформе Linux, MATLAB® использует версии библиотек GLIBC и GLIBCXX (GLIBC++), предоставляемые операционной системой (ОС). Это означает, что при запуске этих моделей на эквивалентной ОС от другого поставщика можно столкнуться с проблемами совместимости, которые препятствуют работе модели.

Поддерживаемые версии библиотеки для различных ОС

ОС LinuxВерсия библиотеки GLIBCВерсия библиотеки GLIBCXXВерсия библиотеки GCC
Debian 92.24-113.4.226.3
Debian 102.28-103.4.258.3
RedHat 6.62.123.4.134.4.7
RedHat 7.72.173.4.194.8.5
SUSE 11.42.11.34.3.4
SUSE 12.32.194.8
SUSE 12.42.224.8

При генерации файла .so компилятор использует только последнюю версию GLIBC/GLIBCXX для каждой отдельной функции библиотеки. Так что пока последняя версия Debian 10 GLIBC - 2.28, SerDes Toolbox™ использует только подсеть библиотек GLIBC. В зависимости от используемых блоков, возможно, требуется только v2.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 .shared. 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 см. в разделе «Предыдущие релизы: системные требования» и «Поддерживаемые компиляторы».

Внешние веб-сайты