Мне нужно извлечь исходный код функции из существующей библиотеки C (библиотека с открытым исходным кодом).
Некоторые компиляторы C сами по себе имеют открытый исходный код. Оба G CC и Clang являются (как и tiny cc). Таким образом, вы можете юридически улучшить их (но это может занять несколько месяцев).
Кроме того, недавние версии G CC (например, в июле 2020 года, G CC 10 ) принимают плагины . Ваш плагин G CC может работать с некоторыми внутренними представлениями G CC (например, GIMPLE , GENERI C), поэтому он будет знать о функциях (даже полученных путем расширения препроцессора).
Вы также можете рассмотреть возможность использования некоторых программных анализаторов с открытым исходным кодом c, таких как Frama- C или Clang stati c анализатор .
Прочтите также этот черновой отчет, связанный с вашими проблемами.
PS. Учитывать лицензию с открытым кодом проблемы (юридические). Я не юрист (и вам, возможно, придется спросить у одного, если вы смешиваете различное программное обеспечение с разными лицензиями с открытым исходным кодом).