Частично предварительно скомпилировать код (или, возможно, использовать.so библиотеку), оставляя другую часть кода открытой для редактирования

Я пытаюсь сделать что-то странное, что на самом деле я не уверен, что это возможно даже при нынешних ограничениях, но выходит за рамки моих знаний, так что это может быть. Надеюсь, я смогу прояснить все достаточно подробно в этом вопросе, но он будет немного широким по объему, слишком большим, чтобы его можно было подробно описать.

Во всяком случае, у меня есть кодовая база C (мы будем называть ее bar), которая довольно велика и требует времени для компиляции. Обычно это не так уж и сложно, но теперь есть набор файлов, которые часто меняются, и в настоящее время эти изменения могут быть подтверждены только после запуска компиляции. Из-за особенностей их изменения это может привести к тому, что люди будут запускать несколько компиляций в день, что займет довольно много времени.

То, что я хочу сделать в широком масштабе, - это просто скомпилировать набор файлов, которые могут измениться (около 20, все в 1 каталоге, мы назовем его foo) и иметь все остальное (bar и все, что находится под ним, кроме готово перед рукой. Изначально я искал библиотеку.so для этой задачи, но больше не был уверен, что это правильно. В любом случае, это все еще казалось вполне вероятным, пока я не понял, что некоторые файлы в каталоге foo были включены другими файлами в bar. В основном, файлы в foo включают только файлы и являются своего рода конечной точкой, не включаемой в вещи. Но с учетом нескольких из них я не уверен, что можно сделать.

Мои две мысли - сгенерировать.so библиотеку всего, что находится за пределами foo, которая каким-то образом все еще проверяет необходимые включенные файлы во время компиляции, или настраивает какую-то общую прекомпиляцию. Кажется, ни один из них не сработает с первого взгляда, но я вполне могу ошибаться.

Третий вариант, менее идеальный, но лучше, чем ничего, - это сгенерировать библиотеку.so со всем, включая любые файлы в foo, которые необходимы на этом этапе, просто исключая файлы, которые нигде не включены. Кажется, что это будет работать лучше, хотя даже если бы это было так, я все еще не совсем уверен, как это сделать.

Итак, в принципе, есть ли способ сделать то, что я хочу в какой-то степени, и если да, то какой метод лучше?

Извините за широту вопроса, кодовая база слишком велика, чтобы предоставить много деталей. Я постараюсь редактировать и добавлять любую информацию, которая, по мнению людей, необходима. Спасибо за помощь.

0 ответов

Другие вопросы по тегам