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

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

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

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

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

Ответы [ 2 ]

6 голосов
/ 20 января 2011

Быстрый поиск Google обнаружил AutoTroll и howto .

Лично я раньше использовал Qt без qmake, но это было для личногопроект, поэтому я просто использовал (непереносимый) Makefile.Я установил переменную (QT4DIR, поскольку Qt3 использовала QTDIR), чтобы указать, куда я установил 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, дважды, но все будет построено.

1 голос
/ 01 августа 2011

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

...