Я искал инструмент перекрестной проверки ABI. Сейчас я встречался с некоторыми из инструментов предлагается в других вопросах, например, в этих вопросах:Заголовок совместимости ABI/перекрестная проверка библиотеки
How to test binary compatibility automatically?
Static analysis tool to detect ABI breaks in C++
Теперь, это не совсем то, что я пытаюсь сделать - так как это отслеживать ABI изменения между версиями.
Мне было интересно, что данные исходных файлов проекта + файл заголовка библиотеки и файл .so библиотеки, а также версия компилятора (которая используется для компиляции как библиотеки, так и проекта), можно проверить, что вывод ABI соответствует скомпилированной библиотеке?
Таким образом, ситуация, к которой это применимо, заключается в том, что библиотека upstream отправляет libfoo.so и libfood.so. Где еда немного отличается от ABI (скажем, удваивается вместо float), но не так далеко, что она не будет компилироваться.
- Возможно ли придумать тест (возможно, не пуленепробиваемый), в котором говорится, что скомпилированный исполняемый файл связан с правильным lib?
- Есть ли инструменты, которые это делают?