У меня есть главная задача (разработать библиотеку), которую я разделил, чтобы сделать ее более управляемой.В основном у меня есть шаблонный класс для векторов и матриц, несколько классов, использующих эти два, основная библиотека, которая использует все эти классы, и демонстрационное приложение, которое использует библиотеку для отображения функций и их тестирования.
Демонстрационное приложение - это проект Qt / cdt.Библиотека является чисто CDD-проектом.Класс векторов и матриц является одним проектом cdt.У каждого из других классов есть собственный проект cdt.
Сейчас я в основном занимаюсь разработкой библиотеки и хочу увидеть результаты в демонстрационном приложении.Таким образом, основной цикл разработки заключается в изменении источника библиотеки и перекомпиляции демонстрационного приложения.
Моя проблема заключается в следующем: как настроить сборку проектов, чтобы в ней нужно было только перестроить необходимые файлы и связать их соответствующим образом.
Моим первым подходом было включение всех исходных файлов всех проектов (включая библиотеку) в демонстрационное приложение.Это сработало, но не сработало при обновлении файлов в библиотеке (поэтому я каждый раз очищаюсь и собираю все заново).
После этого я подумал о статической сборке библиотеки, а затем связал ее с исходным файлом, ссылаясь на проекты.Эта инициированная перекомпиляция в нужном месте, но кажется, что новые двоичные файлы не были связаны с исполняемым файлом.
В основном вопрос заключается в следующем: как мне расположить все эти файлы, чтобы иметь четкую компоновку (не все в одномпроект), при необходимости соберите нужные вещи (и не все) и свяжите их в исполняемый файл (в случае, если произошли изменения).
Примечание Другая проблема со ссылками на проекты заключалась в том, чтоклассы шаблонов были скомпилированы в их проекте, что привело к отвлекающим сообщениям об ошибках.
Редактировать Чтобы лучше понять структуру каталогов:
eclipse_workspace/
demo_application/
.cproject
.project
main.cpp
somewidget.h
somewidget.cpp
demo_application.pro
...
main_library/
.cproject
.project
class1_header.h
class1_implementation.cpp
class2_header.h
class2_implementation.cpp
...
.../
vector_matrix/
.cproject
.project
vector.h
vector.cpp
matrix.h
matrix.cpp
...
Каждый проект зависитна проекты под ним.