Can it be done before compiling, by comparing code? Is there any tools already doing this?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
You might find this interesting: Static analysis tool to detect ABI breaks in C++
回答2:
ABI Compliance Checker — a tool for checking backward API/ABI compatibility of a C/C++ library:
abi-compliance-checker -lib NAME -old OLD.abidump -new NEW.abidump
*.abidump files are ABI dumps of OLD and NEW library versions generated by the ABI Dumper tool.
icheck - C interface ABI/API checker:
icheck --canonify -o old_version -I/usr/include/foo/ bar.h
icheck --compare -o results.txt old_version new_version
shlib-compat - ABI compatibility checker that uses DWARF debug info:
python shlib-compat -vv OLD.so NEW.so
回答3:
I recall Purify had some functionality to verify compatibility between builds, take a look here.