Как сделать make-файл, сгенерированный Qt, без зависимости qmake - PullRequest
0 голосов
/ 13 февраля 2019

Я использую Qt Creator в Linux, чтобы сделать свой проект не на Qt c ++.Я считаю, что создатель Qt сделает для меня make-файл.Я хочу переместить весь проект в компьютер без каких-либо qt или qmake, но я не могу действительно редактировать make-файл самостоятельно.Поскольку я гуглю, что кто-то говорит, что добавление флага CONFIG - = qt может сделать чистый make-файл g ++ без какого-либо компонента qt, но на самом деле это не так.

файл pro в моем проекте выглядит следующим образом:

QMAKE_LFLAGS += -no-pie
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
INCLUDEPATH += /home/MyName/opencvBuild/install/include/opencv4/
LIBS += -L/home/MyName/opencvBuild/install/lib/ \
        -lopencv_core \

SOURCES += \
        main.cpp \
    helloopencv.cpp

HEADERS += \
    helloopencv.hpp

, а make-файл генерирует тысячи зависимостей Qt, например:

.....
###### Files

SOURCES       = ../HelloOpenCV/main.cpp \
        ../HelloOpenCV/helloopencv.cpp 
OBJECTS       = main.o \
        helloopencv.o
DIST          = ../Qt/5.12.0/gcc_64/mkspecs/features/spec_pre.prf \
        ../Qt/5.12.0/gcc_64/mkspecs/common/unix.conf \
        ../Qt/5.12.0/gcc_64/mkspecs/common/linux.conf \
        ../Qt/5.12.0/gcc_64/mkspecs/common/sanitize.conf \
        ../Qt/5.12.0/gcc_64/mkspecs/common/gcc-base.conf \
.....

теперь, когда я вызываю команду makeв терминале это автоматически связывается с qmake.Я не хочу никакого "Qt" в моем make-файле.Что мне делать?

1 Ответ

0 голосов
/ 13 февраля 2019

Это не "Qt" -зависимости, а скорее "qmake" -зависимости: это список файлов, которые qmake обработал для генерации вашего Makefile.Такие вещи, как gcc-base.conf необходимы для некоторых общих параметров gcc, sanitize.conf для набора параметров -fsanitize= и т. Д.

Таким образом, это список файлов, от которых зависит ваш Makefile (используетсядля авто-регенерации и тому подобное).Конечно, если вы не собираетесь когда-либо восстанавливать Makefile с помощью qmake, вы можете просто удалить все эти строки сразу.

Вы жалуетесь, что, несмотря на наличие CONFIG-=qt в вашем .pro, естьвсе еще куча qt_config.prf и других подобных файлов, упомянутых в этом списке.Это правда, однако сценарии запуска qmake разработаны именно таким образом: во-первых, все связанные с Qt вещи безусловно предварительно сконфигурированы ;затем обрабатывается пользовательский проект;и тогда, только если CONFIG += qt, соответствующий материал Qt наконец-то станет активным.

Ради интереса, вы можете связываться с кодом запуска qmake: перейдите к <prefix>/share/qt5/mkspecs/linux-g++-64 (или каков ваш QMAKE_SPEC);открыть файл qmake.conf;закомментируйте последнюю строку: #load(qt_config).Теперь ваш CONFIG -= qt проект должен быть хорошо обработан, но полученный Makefile будет значительно меньше.Но цена в том, что qmake больше не может выполнять проекты с поддержкой Qt (ну, на самом деле, вы можете добавить load(qt_config) поверх вашего файла .pro, и это может даже работать - никаких гарантий, конечно, никаких ;-).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...