У меня есть основная задача (для разработки библиотеки), которую я разделил, чтобы сделать ее более управляемой. В принципе, у меня есть класс шаблонов для векторов и матриц, несколько классов, которые используют эти два, основную библиотеку, которая использует все эти классы и демонстрационное приложение, которое использует библиотеку для отображения функций и проверки их.Управление несколькими проектами в Eclipse
Демо-приложение представляет собой проект Qt/cdt. Библиотека представляет собой чистый проект cdt. Вектор и матричный класс - один проект 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
...
Каждый проект зависит от проектов под ним.
До сих пор я не использовал 'TEMPLATE = subdirs', но я вполне уверен, что это не соответствует моей потребности, поскольку другие проекты не являются поддиректорами. – Nobody