#c #c
#c #c
Вопрос:
В прошлом я создавал файл jar, который содержал множество «вспомогательных функций«, которые я использовал и сделал общими для многих разных приложений. Я чувствовал, что это важно, поскольку всякий раз, когда я использовал свой «вспомогательный» jar-файл в любых новых приложениях или при внесении изменений в любые существующие, всегда использовалась последняя и самая актуальная версия моего «вспомогательного» jar. Он был разработан отдельно и имел собственный контроль версий.
Я хочу сделать что-то подобное с C / C
На данный момент у меня есть коллекция заголовков, которая делает что-то похожее на мой «вспомогательный» jar на java, но считает его громоздким для управления изменениями, обеспечивая использование самых современных коллекций. Так, например, если я внес некоторые изменения в эти «вспомогательные» заголовки, мне нужно скопировать их в каждый проект и перестроить.
Если мы возьмем приведенное ниже в качестве примера того, что я делаю на Java;
и ниже приведена структура, с которой я хотел бы сделать что-то подобное в C ;
Я хотел бы каким-то образом разделить my_includes, чтобы любые изменения, которые я внес в my_includes, автоматически включались в любые существующие или новые приложения, в утилиты way.jar находится в приведенном выше примере Java
Я согласен с тем, что я не могу создать библиотеку или такую, поскольку тогда она не будет переносимой, верно?
Я подозреваю, что мне не хватает чего-то совершенно очевидного, просто не для меня.
Все полезные комментарии оценены, заранее спасибо…
Комментарии:
1. Просто передайте путь включения, хранящийся вне вашего проекта, в настройках компилятора?
2. Вы не упускаете ничего очевидного — эту ситуацию гораздо сложнее аккуратно обработать на C, чем на Java. Java JAR, как правило, автономны, но библиотеки C обычно требуют сочетания двоичных файлов и исходных заголовков. Поддержание их координации при наличии нескольких версий требует высокой систематичности. Если есть хороший, автоматизированный способ сделать это, я бы тоже хотел узнать об этом.
Ответ №1:
Сначала вы могли бы создать библиотеку из своего utilitis.cpp и все включают файлы независимо и добавляют эту библиотеку в любой проект. Я просто предоставляю URL для примера создания статической и общей библиотеки.
Создание статической и разделяемой библиотеки (GCC)
И затем вы можете добавлять пользовательские включаемые файлы в любой проект на c , просто нужно добавить определенные каталоги в свой путь включения во время компиляции на вашей платформе или, если вы используете cmake, вы можете отредактировать «include_directories». А также вы должны связать созданную библиотеку с вашим проектом, как описано в предоставленном URL.