У меня большой проект, который использует GNU automake, хочу добавить компоненты QT, должен ли я сейчас использовать qmake для всего?

У меня есть большой программный проект, который использует аспекты OpenGL для визуализации. Я хочу добавить графический интерфейс и думал об использовании QT. Теперь, насколько я понимаю, сборка QT может стать ужасной, если не придерживаться команды qmake...

Тем не менее, мой проект опирается на инструменты GNU для сборки (g++, autoconf, automake и т. Д. И т. Д.). Должен ли я поэтому реструктурировать весь процесс сборки, чтобы использовать qmake, чтобы я мог использовать несколько небольших аспектов QT? Я очень не хочу делать это, учитывая размер проекта.

Можно подумать, могу ли я (как-то) использовать qmake только для графических компонентов (т.е. qt-зависимых элементов) и продолжать использовать мой стандартный процесс сборки GNU (make, g++ и т. Д.) Для всего остального?

Спасибо, Бен.

2 ответа

Решение

После долгих размышлений я решил скомпилировать исходный код в библиотеку, используя мой оригинальный процесс сборки (но слегка измененный для компиляции библиотеки, а не двоичного кода), а затем скомпилировать графический интерфейс отдельно, используя qmake. Это также связало бы графический интерфейс с исходным библиотечным кодом. Не на 100% идеально, но работает отлично. Вероятно, самым большим препятствием было преобразование некоторого перенасыщенного кода в QGLWidget...

Быстрый поиск в Google включил AutoTroll и howto.

Лично я использовал Qt без qmake раньше, но это было для личного проекта, поэтому я просто использовал (непереносимый) Makefile. Я устанавливаю переменную (QT4DIR, поскольку QTDIR использовался Qt3), чтобы указать, где я установил Qt, затем добавил -L$(QT4DIR)/lib -lQtCore -lQtGuiи т. д. для LDFLAGS а также -I$(QT4DIR)/include/QtCore, -I$(QT4DIR)/include/QtGuiи т. д. для CXXFLAGS, Похоже, эти ссылки объясняют, как сделать что-то подобное для автоинструментов.

Редактировать:

Для обработки MOC я добавил неявные правила, такие как:

 moc_%.cc: %.h
     $(MOC) $< -o $@

А затем убедитесь, что все необходимое moc_*.cc файлы включены в мой SOURCES, Немного сложно указывать классы, производные от QObject, дважды, но все будет построено.

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