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

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

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

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 v2.14 или позже и GLIBCXX v3.4 или позже. Это означает, что этот общий объект может работать на RedHat 7.7, но не на RedHat 6.6.

Примечание

Это только применяется к Linux .shared объекты. Windows только требует, чтобы Universal C Библиотеки времени выполнения была совместима с версиями 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.

Примечание

Ручная сборка общего объекта требует лицензия Embedded Coder® или Simulink® Coder™.

Для списка поддерживаемых версий Linux смотрите Предыдущие Релизы: Системные требования и Поддерживаемые Компиляторы.

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