Eclipse, QT и «проект C ++»: возможно ли это? - PullRequest
7 голосов
/ 15 октября 2011

нужна ваша помощь:

Я хочу использовать Eclipse CDT и QT без создания "Qt gui project". Является ли это возможным? Как включить библиотеки QT в мой проект C ++ и как вызвать qmake / make для компиляции программы? Этот Подобный вопрос мне не помог (

Я хочу использовать «проект C ++» вместо «Проект QT Gui», поскольку существует проблема с индексацией внешних библиотек в проекте QT ( эта проблема )

Спасибо большое! Николай.

Ответы [ 4 ]

8 голосов
/ 19 октября 2011

Мы сделали нечто похожее, используя Qt с настроенной производителем версией Eclipse (Momentics) и CDT.Чтобы заставить его работать, мы закончили тем, что создали общий проект makefile в Eclipse с нашим собственным, сгенерированным вручную Makefile.

Сгенерированный вручную Makefile в основном содержал достаточно информации для вызова QMake в соответствующем файле .pro ("qt.pro ") и затем вызовите полученный Makefile (" qtmake.mk ").

all: qtmake.mk
    $(MAKE) -f qtmake.mk

qtmake.mk: qt.pro
    qmake -r -o qtmake.mk qt.pro

clean: qtmake.mk
    $(MAKE) -f qtmake.mk clean

install: qtmake.mk
    $(MAKE) -f qtmake.mk install
3 голосов
/ 22 октября 2011

Это очень легко использовать Netbeans, так как qt интегрирован в проекты c ++.

Но если вы используете Eclipse, как и в моем случае, вы можете выполнить следующие два шага (для пользователей Linux):

  1. Включите каталоги с заголовками Qt, например /usr/include/qt4/Qt.
  2. Генерирует moc-файлы из заголовков, которые содержат макросы Qt, таких как Q_OBJECT. Это можно сделать с помощью следующей команды в каталоге проекта перед процессом сборки: находить . имя " .h" | sed 's /(.) (/) (. *) (. h) / moc-qt4 -D & -o \ 1 \ 2moc_ \ 3.cpp /' | ш

где вы должны определить, что вы хотите. Просто запустите его один раз или используйте следующую команду ранее из каталога проекта: находить . -name "moc _ *. cpp" -exec -rm -f {} \;

  1. Создайте свой проект.

Кстати, вы пробовали подключить qt?

J.

3 голосов
/ 15 октября 2011

Делать это довольно сложно, я предлагаю вам не делать этого.Я пробовал это только на небольших проектах.

Насколько я знаю, вам придется написать правильный Makefile самостоятельно (или настроить CDT для его создания), включив все пути включения, которые вам нужны для заголовков Qt,Затем вам нужно будет ссылаться на все библиотеки Qt, которые использует ваш проект.

Если вы используете мета-объектную систему Qt, вам придется запустить moc перед компиляцией и компоновкой.Moc генерирует источники C ++, которые вам нужно будет связать с другими источниками.Если вы используете GNU make, и я полагаю, что это так, то, кажется, можно автоматизировать moc, написав правильные инструкции в Makefile CDT.Для подробной информации читайте это: http://doc.qt.io/qt-5/moc.html#writing-make-rules-for-invoking.

Кстати, разве вы не можете использовать Qt Creator?

1 голос
/ 02 января 2018

Вот улучшенный вариант make-файла jwernerny:

first: all

all clean distclean install uninstall: qtmake.mk
    $(MAKE) -f qtmake.mk $@

qtmake.mk: *.pro
    qmake -r -o qtmake.mk $<

.PHONY: first all clean distclean install uninstall

Его нельзя редактировать, когда он будет скопирован в другой проект, и фактически те же самые правила были объединены в один.

...