У меня есть исходные файлы .c
; они на самом деле являются библиотекой, предоставляемой другими. Когда я создаю свою программу для использования этой библиотеки, я должен снова скомпилировать эти файлы. Я не могу скомпилировать файлы в статическую библиотеку, потому что источники содержат некоторые препроцессорные флаги. Мне нужно создать много статических библиотек с различным составом флагов препроцессора.Есть ли способ сделать предварительную обработку при связывании статических библиотек?
Итак, есть ли какой-либо метод, который я могу создать статическую библиотеку, и выбрать, какие флаги препроцессора должны использоваться при связывании с этой библиотекой?
Как сказал Маттео с исходным кодом, он должен создавать отдельные библиотеки, будь то статические или общие, для каждой комбинации флагов препроцессора. Почему вам так часто нужны разные наборы препроцессорных флагов? Возможно, библиотека должна быть более конфигурируемой во время выполнения, а не быть настроенной исключительно во время компиляции. Тогда у вас может быть одна библиотека, и вы сможете использовать ее во всех ваших программах. –
На самом деле, я врожденный парень. Я должен выбрать флаги препроцессора, когда компилирую для разных процессоров. Мне нужно изменить параметры '-D' в флагах командной строки' gcc', а затем снова скомпилировать источники. Это займет некоторое время. Поэтому я блуждаю хорошим способом сэкономить время компиляции. –
Если вам нужны разные флаги для разных процессоров, нет возможности избежать перекомпиляции кода. Код, скомпилированный для одного типа процессора, не будет работать на других - если только процессоры не совместимы, как у семейства Intel. Поэтому вам придется перестраивать библиотеку практически независимо. –