我一直在寻找ABI交叉检查工具。现在我遇到的其他问题,如对这些问题的一些工具提示:ABI兼容性头/库交叉检查
How to test binary compatibility automatically?
Static analysis tool to detect ABI breaks in C++
现在,这不正是我想要做的事 - 因为这些跟踪ABI版本之间的变化。
我想知道给定项目源文件+库头文件和库.so文件,以及编译器版本(用于编译库和项目),是否可以交叉检查ABI的输出与编译的库匹配吗?
所以,它适用的情况是,如果一个上游库运送libfoo.so和libfood.so。在哪里食物是一个稍微不同的ABI,(比如说双打而不是浮点数),但是到目前为止它不会编译。
- 是否有可能拿出一个测试(可能不是bulletproof),说明编译的可执行文件已经链接到正确的lib?
- 是否有工具可以做到这一点?