Извлечь исходный код функции из существующей библиотеки с открытым исходным кодом C - PullRequest
1 голос
/ 10 июля 2020

Мне нужно извлечь исходный код функции из существующей C библиотеки (библиотека с открытым исходным кодом). Проблема в том, что функции создаются с использованием макросов в файлах заголовков, и когда я пишу тестовый проект и связываю с ним библиотеку, отладчик указывает мне на этот файл заголовка в действии «go to definition». У меня есть исходный код библиотеки, и я думаю, мне нужно собрать его вместе с моим тестовым кодом (возможно, это неверно, я не уверен). Любые советы о том, как действовать, что использовать? Спасибо.

1 Ответ

0 голосов
/ 10 июля 2020

Мне нужно извлечь исходный код функции из существующей библиотеки 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. Учитывать лицензию с открытым кодом проблемы (юридические). Я не юрист (и вам, возможно, придется спросить у одного, если вы смешиваете различное программное обеспечение с разными лицензиями с открытым исходным кодом).

...