La herramienta abi-compliance-checker se puede utilizar como un analizador de archivos de cabecera C/C++:
abi-compliance-checker -lib NAME -dump VER.xml -headers-only -xml -stdout > api.xml
VER.xml
archivo de entrada es la siguiente:
<version>
1.0
</version>
<headers>
/path1/to/header(s)/
/path2/to/header(s)/
...
</headers>
La salida api.xml
archivo contiene las firmas de función y otra información de archivos de encabezado en la forma estructurada:
...
<symbol>
<id>37348</id>
<mangled>_ZN7MWidget11qt_metacallEN11QMetaObject4CallEiPPv</mangled>
<short>qt_metacall</short>
<class>13749</class>
<header>mwidget.h</header>
<line>45</line>
<return>44</return>
<spec>virtual</spec>
<parameters>
<param>
<name>p1</name>
<type>4078</type>
<algn>4</algn>
<pos>0</pos>
</param>
<param>
<name>p2</name>
<type>44</type>
<algn>4</algn>
<pos>1</pos>
</param>
<param>
<name>p3</name>
<type>3905</type>
<algn>8</algn>
<pos>2</pos>
</param>
</parameters>
</symbol>
...
Consulte también información sobre la herramienta api-sanity-checker, que puede generar casos de prueba de unidades básicas para cada función en la API mediante el análisis de declaraciones en archivos de encabezado.
Buena respuesta, pero parece bastante viejo. Alguien sabe de fuentes más actualizadas? –