Объединение файлов C-кода в один файл C-кода - PullRequest
1 голос
/ 03 апреля 2012

Я конвертирую libx264 в Renderscript в качестве упражнения, показывающего, сколько работы нужно, чтобы перенести немного больший проект в Renderscript. Одной из проблем рендеринга является то, что все должно быть объявлено как статическое, чтобы автоматически не получать интерфейс Java. Кроме того, этот автоматический интерфейс Java не может обрабатывать указатель, многомерные массивы и т. Д. Поэтому мне нужно объявить все функции и глобальные переменные как статические в libx264, кроме нескольких функций вызова для управления им.

Моя проблема в том, что, поскольку все объявлено как статическое, мне нужно иметь весь код в одной области видимости файла. Я начал просто включать все файлы C-кода в один и компилировать это. Это работало бы довольно легко, если бы не сама библиотека libx264 также включала C-файлы с различными определениями макросов предварительной обработки, поэтому некоторые функции существуют дважды с различным содержанием, а некоторые переименованы идентично. Конечно, я мог бы справиться с этим вручную, но это было бы проще с помощью инструмента.

Я спрашиваю, знает ли кто-нибудь инструмент, который может взять проект C и предварительно обработать / объединить его в один C-файл, управляя повторными объявлениями, конфликтующими объявлениями и т. Д.

И я думал, что распределение кучи будет трудной проблемой ...

1 Ответ

0 голосов
/ 10 апреля 2012

Я нашел инструмент, который делает это, CIL.http://sourceforge.net/projects/cil http://kerneis.github.com/cil/doc/html/cil/merger.html

/ Харальд

...