英语法语西班牙语

Ad


OnWorks 网站图标

abi-compliance-checker - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 abi-compliance-checker

这是命令 abi-compliance-checker,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


abi-compliance-checker - 比较共享 C/C++ 库的 ABI 兼容性的工具
版本

商品描述


产品名称:
ABI Compliance Checker (abi-compliance-checker) 检查一个程序的向后兼容性
C/C++ 库 API

描述:
ABI 合规性检查器 (ABICC) 是一种用于检查反向二进制和
共享 C/C++ 库的源代码级兼容性。 该工具检查头文件
和新旧版本的共享库 (*.so) 并分析 API 和
可能会破坏二进制和/或源代码级兼容性的 ABI(ABI=API+编译器 ABI):
调用堆栈的更改、v-table 的更改、删除的符号、重命名的字段等。
二进制不兼容可能会导致应用程序崩溃或行为不正确
如果它们在新版本上运行,则使用旧版本的库构建。 来源
不兼容可能会导致新库版本的重新编译错误。

该工具适用于软件库的开发人员和维护人员
对确保向后兼容性感兴趣的操作系统,即允许
旧应用程序运行或使用较新的库版本重新编译。

此外,ISV 还可以使用该工具来检查应用程序对新应用程序的可移植性。
库版本。 发现的问题可以在调整时考虑
应用程序到新的库版本。

该工具是免费软件:您可以重新分发和/或修改它
GNU LGPL 或 GNU GPL 的条款。

用法:
abi-compliance-checker [选项]

例:
abi-合规检查器 -lib 您的姓名 -旧 旧文件 -新的 新建文件

OLD.xml 和 NEW.xml 是 XML 描述符:



1.0





/路径1/到/标头/ /路径2/到/标头/

...





/路径1/到/库/ /路径2/到/库/

...



相关信息 选项:
-h|-帮助

打印此帮助。

-i|-信息

打印完整信息。

-v|-版本

打印版本信息。

-转储版本

打印工具版本(1.99.14),不要做任何其他事情。

一般 选项:
-l|-lib|-库名称

库名称(无版本)。

-d1|-旧|-o 路径

第一个(旧)库版本的描述符。 它可能是以下之一:

1. XML 描述符(VERSION.xml 文件):



1.0





/路径1/到/标头/ /路径2/到/标头/

...





/路径1/到/库/ /路径2/到/库/

...



...

2. 生成的 ABI 转储 -倾倒 选项 3. 带有标题和/或共享的目录
库 4. 单个头文件

如果您使用的是 2-4 个描述符类型,那么您应该指定版本号
-v1-v2 选项。

欲了解更多信息,请访问:

http://ispras.linuxbase.org/index.php/Library_Descriptor

-d2|-new|-n 路径

第二个(新)库版本的描述符。

-倾倒|-dump-abi 路径

为输入 XML 描述符创建库 ABI 转储。 你可以转移到任何地方
并通过而不是描述符。 也可用于调试工具。

支持的 ABI 转储版本:2.0<=V<=3.2

额外服务 选项:
-app|-应用程序路径

此选项允许指定应检查的应用程序
可移植到新的库版本。

-静态库

检查静态库而不是共享库。 这的部分
XML 描述符应指向静态库位置。

-gcc 路径 PATH

要使用的跨 GCC 编译器的路径,而不是通常的(主机)GCC。

-gcc-前缀 字首

GCC 工具链前缀。

-gcc-选项 选择

其他编译器选项。

-系统根目录 DIR

指定备用根目录。 该工具将搜索包含路径
DIR/usr/include 和 DIR/usr/lib 目录。

-v1|-版本1 NUM

在描述符之外指定第一个库版本。 如果您需要此选项
更喜欢另一种描述符类型(请参阅 -d1 选项)。

在一般情况下,您应该在 XML 描述符中指定它:



VERSION



-v2|-版本2 NUM

在描述符之外指定第二个库版本。

-vnum

在生成的 ABI 转储中指定库版本。 这的部分
在这种情况下,输入 XML 描述符将被覆盖。

-s|-严格

将所有兼容性警告视为问题。 添加多个“低”严重性
工具返回值的问题。

-仅标题

检查没有共享库的头文件。 它很容易运行,但可能会提供一个
具有误报且未检测到的低质量兼容性报告
添加/删除符号。

或者,您可以在中的部分
XML 描述符:



没有



-显示retval

在报告中显示交易品种的返回类型。

-符号列表 PATH

此选项允许您指定一个带有符号列表的文件(在
C++)应该被检查。 不会检查其他符号。

-类型列表 PATH

此选项允许您指定一个文件,其中包含应为的类型列表
检查。 不会检查其他类型。

-跳过符号 PATH

不应检查的符号列表。

-跳过类型 PATH

不应检查的类型列表。

-标题列表 PATH

带有标题列表的文件,应该检查/转储。

-跳过标题 PATH

带有头文件列表的文件,不应检查。

-标题 您的姓名

仅检查/转储此标头的 ABI。

-使用转储

为库的两个版本进行转储并比较转储。 这应该增加
工具的性能并减少系统内存使用。

-nostdinc

不要在 GCC 标准系统目录中搜索头文件。

-转储系统 您的姓名 -系统根目录 DIR

找到DIR目录下的所有共享库和头文件,创建XML
描述符并为每个库进行 ABI 转储。 ABI 转储的结果集可以是
比较的 (--cmp-系统) 另一个是为其他版本的操作创建的
系统以检查它们的兼容性。 不要忘记指定
-跨海湾合作委员会 如果您的目标系统需要某些特定版本的 GCC,则选项
编译器(不同于主机 GCC)。 系统 ABI 转储将生成为:

sys_dumps/名称/ARCH

-转储系统 描述符文件

与上一个选项相同,但将目标系统的 XML 描述符作为
输入,您应该在其中描述它:

/* 主要部分 */



/* 系统名称 */





/* 头文件和/或的路径列表

带有头文件的目录,每行一个 */





/* 共享库和/或的路径列表

包含共享库的目录,每行一个 */



/* 可选部分 */



/* 要搜索的目录列表

自动生成头文件包含路径,每行一个 */





/* 要搜索的目录列表

用于解决依赖关系的共享库,每行一个 */





/* 使用工具的目录列表

用于分析(GCC 工具链),每行一个 */





/* GCC 工具链前缀。

例子:
arm-linux-gnueabi arm-none-symbianelf */





/* 额外的 GCC 选项,每行一个 */



-系统信息 DIR

此选项应与 -转储系统 转储操作 ABI 的选项
系统并配置转储过程。 您可以在包中找到示例:

模块/目标/{unix、symbian、windows}

-cmp-系统 -d1 系统转储/NAME1/ARCH -d2 系统转储/NAME2/ARCH

比较两个系统 ABI 转储。 为每个库和库创建兼容性报告
通用 HTML 报告,包括所有已检查库的测试结果摘要。
报告将生成至:

sys_compat_reports/NAME1_to_NAME2/ARCH

-libs 列表 PATH

带有库列表的文件,应该由 -转储系统 选项
或者应该由 -cmp-系统 选项。

-分机|-扩展

如果您的库 A 应该被其他库 B 使用并且您想控制
B 的 ABI,那么您应该启用此选项。 该工具将检查更改
在所有数据类型中,即使它们没有被库 A 中的任何函数使用。
数据类型不是 A 库 ABI 的一部分,但可能是 B 库 ABI 的一部分
图书馆。

简短的方案是:

app C(损坏的)-> lib B(损坏的ABI)-> lib A(稳定的ABI)

-q|-安静

将所有消息打印到文件而不是 stdout 和 stderr。 默认路径(可以是
改变了 -日志路径 选项):

日志/运行.log

-标准输出

将分析结果(兼容性报告和 ABI 转储)打印到标准输出而不是
创建文件。 这将允许将数据传送到其他程序。

-报告格式 FMT

更改兼容性报告的格式。 格式:

htm - HTML 格式(默认) xml - XML 格式

-转储格式 FMT

更改 ABI 转储的格式。 格式:

perl - Data::Dumper 格式(默认) xml - XML 格式

-xml

别名: --报告格式=XML or --转储格式=XML

-郎

设置库语言(C 或 C++)。 如果该工具不能,您可以使用此选项
自动检测语言。 此选项可用于检查 C 库标题
(--郎=C)in --仅标题 or --扩展 模式。

-拱

设置库架构(x86、x86_64、ia64、arm、ppc32、ppc64、s390等)。 这
如果工具无法检测到输入的正确架构,则该选项很有用
对象。

-二进制|-bin|-abi

仅显示“二进制”兼容性问题。 生成报告至:

compat_reports/LIB_NAME/V1_to_V2/abi_compat_report.html

-资源|-src|-api

仅显示“源”兼容性问题。 生成报告至:

compat_reports/LIB_NAME/V1_to_V2/src_compat_report.html

-限制影响 极限

在更改的描述下列出的受影响符号的最大数量
输入报告。

其他 选项:
-测试

运行内部测试。 创建示例库的两个二进制不兼容版本和
运行该工具以检查它们的兼容性。 此选项允许您检查是否
该工具在当前环境中正常工作。

-测试转储

测试创建、读取和比较 ABI 转储的能力。

-调试

调试模式。 在屏幕上打印调试信息。 保存中间分析阶段
在调试目录中:

调试/LIB_NAME/版本/

还可以考虑使用 - 倾倒 调试工具的选项。

-cpp 兼容

如果你的头文件是用C语言写的,可以用G++编译
编译器(即不要使用 C++ 关键字),然后你可以告诉工具这个和
加速分析。

-cpp 不兼容

如果输入 C 头文件使用 C++ 关键字,则设置此选项。

-p|-params 路径

带有函数参数名称的文件路径。 它可用于改进报告
查看库头文件是否没有参数名称。 文件格式:

func1;param1;param2;param3 ... func2;param1;param2;param3 ...

...

-relpath PATH

在用于转储库的 XML 描述符中将 {RELPATH} 宏替换为 PATH
ABI(见 -倾倒 选项)。

-relpath1 PATH

将 {RELPATH} 宏替换为第一个 XML 描述符中的 PATH (-d1).

-relpath2 PATH

将 {RELPATH} 宏替换为 PATH 在第二个 XML 描述符(-d2).

-转储路径 PATH

指定生成 ABI 转储的 *.abi.tar.gz 或 *.abi 文件路径。 默认:

abi_dumps/LIB_NAME/LIB_NAME_VERSION.abi.tar.gz

-种类

启用 ABI 转储中的数据排序。

-报告路径 PATH

兼容性报告的路径。 默认:

compat_reports/LIB_NAME/V1_to_V2/compat_report.html

-bin报告路径 PATH

“二进制”兼容性报告的路径。 默认:

compat_reports/LIB_NAME/V1_to_V2/abi_compat_report.html

-src-报告-路径 PATH

“源”兼容性报告的路径。 默认:

compat_reports/LIB_NAME/V1_to_V2/src_compat_report.html

-日志路径 PATH

所有消息的日志路径。 默认:

日志/LIB_NAME/VERSION/log.txt

-log1-路径 PATH

库的第一个版本的日志路径。 默认:

日志/LIB_NAME/V1/log.txt

-log2-路径 PATH

库的第二个版本的日志路径。 默认:

日志/LIB_NAME/V2/log.txt

-日志模式 MODE

更改日志记录模式。 模式:

w - 覆盖旧日志(默认) a - 附加旧日志 n - 不写入任何日志

-受列表影响

生成包含 HTML 兼容性之外的不兼容符号列表的文件
报告。 使用来自 GNU binutils 的 'c++filt @file' 命令来解开 C++ 符号
生成的文件。 默认名称:

abi_affected.txt src_affected.txt

-零件 您的姓名

HTML 报告的标题和摘要中的组件名称。 默认:

图书馆

-标题 您的姓名

将报告标题中的库名称更改为 NAME。 默认情况下会显示一个
指定的名称 -l 选项。

-额外信息 DIR

将额外信息转储到 DIR。

-额外转储

创建包含翻译单元中所有符号的扩展 ABI 转储。

-力

如果该工具不起作用,请尝试使用此选项。

-宽容 LEVEL

应用一组启发式方法来成功编译输入头文件。 你可以
通过将它们连接成一个字符串(例如 13、124、
等等。)。 级别:

1 - 跳过非 Linux 头文件(例如 win32_*.h 等) 2 - 跳过内部头文件(例如
*_p.h、impl/*.h 等)3 - 跳过包含非 Linux 头文件的头文件 4 - 跳过
其他人包含的标题

-宽容

启用最高容差级别 [1234]。

-检查

检查 ABI 转储的完整性。

-快的

快速分析。 禁用某些模板实例的检查。

-跳过内部符号 模式

不要检查与模式匹配的符号。

-跳过内部类型 模式

不要检查与模式匹配的类型。

报告:
兼容性报告将生成到:

compat_reports/LIB_NAME/V1_to_V2/compat_report.html

日志将生成到:

日志/LIB_NAME/V1/log.txt 日志/LIB_NAME/V2/log.txt

退出 代码:
0 - 兼容。 该工具已运行,没有任何错误。 非零 - 不兼容或
该工具运行时出错。

了解更多 信息:
http://lvc.github.io/abi-compliance-checker/

使用 onworks.net 服务在线使用 abi-compliance-checker


免费服务器和工作站

下载 Windows 和 Linux 应用程序

  • 1
    移相器
    移相器
    Phaser 是一个快速、免费且有趣的开放式
    源 HTML5 游戏框架,提供
    WebGL 和 Canvas 渲染
    桌面和移动网络浏览器。 游戏
    可以共...
    下载移相器
  • 2
    附庸引擎
    附庸引擎
    VASSAL 是一个游戏引擎,用于创建
    电子版传统板
    和纸牌游戏。 它提供支持
    游戏块渲染和交互,
    和...
    下载 VASSAL 引擎
  • 3
    OpenPDF - iText 的分支
    OpenPDF - iText 的分支
    OpenPDF 是一个 Java 库,用于创建
    以及使用 LGPL 编辑 PDF 文件和
    MPL 开源许可证。 OpenPDF 是
    iText 的 LGPL/MPL 开源继承者,
    一个...
    下载 OpenPDF - iText 的分支
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - 自动化系统
    地球科学分析 - 是地理
    信息系统 (GIS) 软件
    地理数据的强大功能
    加工和分析...
    下载 SAGA GIS
  • 5
    Java/JTOpen 工具箱
    Java/JTOpen 工具箱
    IBM Toolbox for Java / JTOpen 是一个
    Java类库支持
    客户端/服务器和互联网编程
    模型到运行 OS/400 的系统,
    i5/OS, 哦...
    下载 Java/JTOpen 工具箱
  • 6
    D3.js
    D3.js
    D3.js(或数据驱动文档的 D3)
    是一个 JavaScript 库,它允许你
    生成动态的交互式数据
    Web 浏览器中的可视化。 与D3
    您...
    下载 D3.js
  • 更多 ”

Linux 命令

Ad