在Linux平台上生成共享对象(.so)文件时,MATLAB®使用操作系统自带的GLIBC和GLIBCXX (GLIBC++)库版本。这意味着,当在来自其他供应商的等效操作系统上运行这些模型时,您可能会遇到兼容性问题,从而阻止模型运行。
金宝app不同操作系统支持的库版本
Linux操作系统 | GLIBC库版本 | GLIBCXX库版本 | GCC库版本 |
---|---|---|---|
Debian 9 | -11 - 2.24 | 3.4.22 | 6.3 |
Debian 10 | -10 - 2.28 | 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 | 14 | - - - - - - | 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库的一个子集。根据所使用的块,可能只需要v2.12。
例如,在Debian 10上为随机Rx AMI模型生成的so文件需要这些库:
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 Runtime库与所有GLIBC/GLIBCXX版本兼容。
在较早的Linux版本(而不是MATLAB中官方支持的版本)上生成共享对象的一个简单解决方案是,在完全受支持的平台上导出so文件,然后在较早的版本上手动运行构建。金宝app要做到这一点:
转到发射器或接收器构建目录,用Tx_ert_rtw
和Rx_ert_rtw
,分别。
在命令行中,输入以下命令:
让- f Tx.mk
让- f Rx.mk
生成的共享对象驻留在构建目录(. . / Tx.so
发射机和. . / Rx.so
接收器。)
将so文件复制到SerDes工具箱使用的全名。
请注意
手动构建共享对象需要金宝app®编码器™或者嵌入式编码器®许可证。
有关支持的Linux版本列表金宝app,请参见以前的版本:系统要求和支持的编译器金宝app.