Fatal error qapplication нет такого файла или каталога

Fatal error qapplication no such file or directory I got Qt5 installed on Opensuse 12.2. I tried to compile some example project that compiled successfully on Qt 4.8. Now I get error message «QApplication: No such file or directory» I think the PATH to library is missing while I installed locally on /home/ Where […]

Содержание

  1. Fatal error qapplication no such file or directory
  2. Ошибка QApplication: нет такого файла или каталога
  3. 12 ответы
  4. Ошибка QApplication: нет такого файла или каталога
  5. ОТВЕТЫ
  6. Ответ 1
  7. Ответ 2
  8. Ответ 3
  9. Ответ 4
  10. Ответ 5
  11. Ответ 6
  12. Ответ 7
  13. Ответ 8
  14. Ответ 9
  15. Ответ 10
  16. фатальная ошибка: QtGui / QApplication: нет такого файла или каталога |
  17. Решение
  18. Другие решения
  19. Ошибка QApplication: нет такого файла или каталога
  20. 10 ответов

Fatal error qapplication no such file or directory

I got Qt5 installed on Opensuse 12.2.
I tried to compile some example project that compiled successfully on Qt 4.8.
Now I get error message «QApplication: No such file or directory»
I think the PATH to library is missing while I installed locally on /home/

Where should I edit?

How do you include QApplication header? In Qt5, it resides in , while in Qt4 it was .

I think the module isn’t added in .pro file, so did you added QT += widgets in your .pro file?

//anyway if the module is added the header can be included with #include you don’t need or in Qt4 (that works with both Qt4 and 5)

Adding QT += widgets in .pro file made the trick. Thanks.

Why does qmake not include these, or what must one do in the source to ensure qmake auto generates this line in the .pro file ?

qmake will never generate anything in your .pro file. Those files are config files for qmake to use, not the other way around. If you create a new project in recent versions of Qt Creator, this line will be added for you in standard app template.

Ooh ok, that make more sense now, thanks for the reply.

Sorry for hijacking the thread by the way 😀

The «Adding QT += widgets in .pro file» really helped me as well. Thanks.

I’m happy, too. I solved.

Why qmake —project is doing a so simple task in a wrong way?

can qmake -project add «QT += widgets» to .pro automatically ?

Just to say what happened to be my problem, it was a dumb error:

I was following a guide that had me open an empty QT project, which gave me a .pro file but left it empty. I had filled in some data and «TEMPLATE = application» as they has mentioned it. I already had the «widgets» line but it still couldn’t find the library as I included it in the .cpp file. When I changed it to «TEMPALTE = app» the .pro file was parsed, and the file to include resolved correctly (QApplication).

@sierdzio
I have add to mainwindow.h file and
QT += widgets in .pro file but still «error : No such file or directory» occurs .

Источник

Ошибка QApplication: нет такого файла или каталога

Я установил C ++ SDK с Qt, но когда я пытаюсь скомпилировать код, связывающий QApplication, он выдает ошибку:

Как связать эти библиотеки? Я поискал в каталогах и нашел файл с именем QApplication.h; Поэтому я попытался связать его с -I (ссылка на каталог), но он все еще давал мне эту ошибку.

Ramy Al Zuhouri

Название этого вопроса. Источник — простой файл, я подумал, что мне не нужно его публиковать, а просто: pastebin.com/972XtFUz — Ramy Al Zuhouri

Каков результат $locate QApplication ? — Abhijeet Rastogi

/ home / ramy / Documents / C ++ QtSDK / Desktop / Qt / 474 / gcc / include / QtGui / QApplication /home/ramy/Documents/C++QtSDK/Madde/sysroots/harmattan_sysroot_10.2011.34-1_slim/usr/include / qt4 / QtGui / QApplication / home / ramy / Documents / C ++ QtSDK / Simulator / Qt / gcc / include / QtGui / QApplication / usr / include / qt4 / QtGui / QApplication — Ramy Al Zuhouri

В комментариях я сказал вам написать run $qmake -project -d -Wall и вы включили $ при выполнении команды. Исключить 5 , это было просто, чтобы сказать вам, что это команда, которую вы должны написать в оболочке — Abhijeet Rastogi

ОТЛАДКА 1: анализатор проекта: /usr/share/qt4/mkspecs/features/include_source_dir.prf:1: INCLUDEPATH:: * =: (.) ​​- Ramy Al Zuhouri

12 ответы

В Qt 5 вам теперь нужно добавить widgets до QT qmake переменная (в вашем MyProject.pro файл).

ответ дан 23 мар ’18, в 15:03

Да, если вы используете qmake, указанная выше строка автоматически добавит все необходимые флаги компилятора. — Тимммм

@Timmmm хорошо, если я новичок в QT Creator, я действительно не понимаю, где добавить эту строку, что такое переменная qt qmake? какой-то конфигурационный файл проекта или настройки? (это может быть что угодно, пока не знаю) — user924

Добавлен виджет в переменную QT, я все еще получаю это сообщение об ошибке. — Степан Яковенко

Для начала ошибка QApplication: no such file or directory означает, что ваш компилятор не смог найти этот заголовок. Это не связано с процессом связывания, как вы упомянули в вопросе.

Компания -I флаг (верхний регистр i) используется для указания каталога include (заголовков) (это то, что вам нужно сделать), в то время как -L Флаг используется для указания каталога библиотек. В -l флаг (L в нижнем регистре) используется для связывания вашего приложения с указанной библиотекой.

Но вы можете используйте Qt в ваших интересах: Qt имеет систему сборки с именем QMAKE что упрощает жизнь. Например, когда я хочу скомпилировать main.cpp Я создаю main.pro файл. В образовательных целях предположим, что этот исходный код представляет собой простой проект, в котором используются только QApplication и QDeclarativeView . Соответствующий .про файл будет:

Затем выполните qmake внутри этого каталога для создания Makefile, который будет использоваться для компиляции вашего приложения, и, наконец, выполнить make чтобы выполнить работу.

В моей системе это make выходы:

Примечание: я установил Qt в другой каталог -> /opt/qt_47x

Изменить: Qt 5.x и новее

Добавить QT += widgets в файл .pro и решите эту проблему.

Источник

Ошибка QApplication: нет такого файла или каталога

Я установил С++ SDK, у которого есть Qt, но когда я пытаюсь скомпилировать код, связывающий QApplication, он дает мне ошибку:

Как связать эти библиотеки? Я искал в каталогах и есть файл с именем QApplication.h; Поэтому я попытался связать его с -I (связать каталог), но он все еще выдавал мне эту ошибку.

ОТВЕТЫ

Ответ 1

Чтобы начать работу, ошибка QApplication: no such file or directory означает, что ваш компилятор не смог найти этот заголовок. Это не связано с процессом связывания, как вы упомянули в вопросе.

Флаг -I (верхний регистр i) используется для указания каталога include (headers) (что вам нужно делать), а флаг -L используется для указания библиотеки. Флаг -L (нижний регистр L) используется для связывания приложения с указанной библиотекой.

Но вы можете использовать Qt в своих интересах: Qt имеет систему сборки с именем qmake, что упрощает работу. Например, когда я хочу скомпилировать main.cpp, я создаю файл main.pro. Для образовательных целей, скажем, этот исходный код — простой проект, который использует только QApplication и QDeclarativeView . Соответствующим .pro файлом будет:

Затем выполните qmake внутри этого каталога, чтобы создать Makefile, который будет использоваться для компиляции вашего приложения, и, наконец, выполнить make , чтобы выполнить задание.

В моей системе этот make выводит:

Примечание. Я установил Qt в другой каталог → /opt/qt_47x

Ответ 2

В Qt 5 вам нужно добавить widgets в переменную qmake QT :

Ответ 3

Для QT 5

Шаг 1: .pro (в про файле добавьте эти 2 строки)

Шаг 2: В main.cpp заменить код:

Ответ 4

Похоже, что у вас нет установленных библиотек разработки. Установите их, используя:

Как вы сказали int, комментарии, которые вы их установили, просто переустановите. Теперь. для обновления базы данных локации выполните эту команду $sudo updatedb

Затем $locate QApplication , чтобы проверить, что у вас теперь установлен файл заголовка.

Теперь перейдите в папку, в которой у вас есть код, и введите эти команды

Затем вы можете найти созданный двоичный файл.

В качестве альтернативы вы можете использовать Qt Creator, если хотите графический интерфейс.

Ответ 5

Пожалуйста, убедитесь, что версия qmake, которую вы используете, соответствует версии QT, которую вы хотите использовать.

Конечно, вы можете просто запустить:

Ваша проблема, по-видимому, является симптомом конфликта версий между QT 3 и 4, как можно видеть здесь:

Чтобы исправить это, вы можете либо удалить свою старую установку QT, либо конкретно указать qmake-qt4 в своем файле Makefile.

Ответ 6

В Qt5 вы должны использовать QtWidgets вместо QtGui

Ответ 7

вам нужно добавить QT + = виджеты в файле .pro перед первым исполнением, если вы выполнили перед добавлением этой строки, это не сработает, поэтому вам нужно начать создание файла с самого начала.

Ответ 8

Я предлагаю вам обновить SDK и начать новый проект и перекомпилировать все, что у вас есть. Кажется, у вас есть некоторые внутренние ошибки программы. Или вам не хватает пакета.

И делайте то, что сказал Абдиджик.

Ответ 9

Убедитесь, что у вас есть qmake на вашем пути (который qmake) и что он работает (qmake -v) (ЕСЛИ вы должны убить его ctr-c, тогда в вашей среде что-то не так).

Ответ 10

Вы можете изменить версию версии. Например, я попробовал QT 5.6.1, но это не сработало. Во-первых, я пробовал QT 5.7.0. Так оно и работало, удачи!:)

Источник

фатальная ошибка: QtGui / QApplication: нет такого файла или каталога |

Перво-наперво, да, я сделал тщательный поиск десятков постов с одинаковыми именами, и мое решение либо не было там, либо не было очевидно из-за моего ограниченного знания этой темы.

Я довольно опытный в C ++, и использую его часто, но я буквально только что открыл QT и решил попробовать его. Ошибка очень простая, я предполагаю, что я сделал что-то очень основное неправильно.

Что я использую:

  1. Последняя версия CodeBlocks
  2. Последняя версия QT
  3. Кусок примера кода из этой темы 🙁Показать QImage с QtGui ).
  4. Блоки кода установлены здесь: C: Program Files (x86) CodeBlocks
  5. MinGW здесь: C: MinGW bin
  6. QT здесь: C: Qt 4.8.5 bin

Вот мой полный путь к среде:

Из поста, на который я ссылался, звучит так, будто это полная и работающая программа (я заменил изображение своим собственным изображением), что еще больше укрепляет мое мнение о том, что я глупый, но глубокий.

Полный журнал ошибок из CodeBlocks построить и запустить:

Полный журнал сборки:

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

Решение

У меня была такая же проблема на Fedora Linux. Я решил, изменив строку импорта на

и вместо того, чтобы использовать qmake (который использует QT3) он должен был использовать qmake-qt4 (для QT4).

Другие решения

У меня была похожая проблема при обновлении с Qt4 до Qt5. Я знаю, что ваш путь говорит Qt 4.8.5, но, возможно, у вас установлено несколько версий. Ваше сообщение датировано 2013-07-09, а версия Qt 5.0 была выпущена 2012-12-09.

Источник

Ошибка QApplication: нет такого файла или каталога

Я установил С++ SDK, у которого есть Qt, но когда я пытаюсь скомпилировать код, связывающий QApplication, он дает мне ошибку:

Как связать эти библиотеки? Я искал в каталогах и есть файл с именем QApplication.h; Поэтому я попытался связать его с -I (связать каталог), но он все еще выдавал мне эту ошибку.

10 ответов

Чтобы начать работу, ошибка QApplication: no such file or directory означает, что ваш компилятор не смог найти этот заголовок. Это не связано с процессом связывания, как вы упомянули в вопросе.

Флаг -I (верхний регистр i) используется для указания каталога include (headers) (что вам нужно делать), а флаг -L используется для указания библиотеки. Флаг -L (нижний регистр L) используется для связывания приложения с указанной библиотекой.

Но вы можете использовать Qt в своих интересах: Qt имеет систему сборки с именем qmake, что упрощает работу. Например, когда я хочу скомпилировать main.cpp, я создаю файл main.pro. Для образовательных целей, скажем, этот исходный код — простой проект, который использует только QApplication и QDeclarativeView . Соответствующим .pro файлом будет:

Затем выполните qmake внутри этого каталога, чтобы создать Makefile, который будет использоваться для компиляции вашего приложения, и, наконец, выполнить make , чтобы выполнить задание.

В моей системе этот make выводит:

Примечание. Я установил Qt в другой каталог → /opt/qt_47x

Источник

@jsulm Hello, I am having a similar issue to @Mijaz. I am trying to use Qt 5.11 to cross compile for a STM32MP157c-DK2 development board. I have successfully loaded images to the board from a qml file but my cpp files are riddled with errors including «use of undeclared identifier ‘QCoreApplication’. I have tried adding #include <QApplication> and QT += widgets with no luck. Here is my main.cpp file and my pro file.

main.cpp

#include <QGuiApplication>
#include <QQmlApplicationEngine>

#include <QApplication>
#include <QLabel>

#include <QQmlEngine>
#include <QTextCodec>
#include <QtGui>

int main(int argc, char *argv[])
{
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);

    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    const QUrl url(QStringLiteral("qrc:/main.qml"));
    QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
                     &app, [url](QObject *obj, const QUrl &objUrl) {
        if (!obj && url == objUrl)
            QCoreApplication::exit(-1);
    }, Qt::QueuedConnection);
    engine.load(url);

    return app.exec();
}

pro file

QT += quick widgets core gui

CONFIG += c++11 qmltypes qt

# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Refer to the documentation for the
# deprecated API to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += 
        main.cpp

RESOURCES += qml.qrc

# Additional import path used to resolve QML modules in Qt Creator's code model
QML_IMPORT_PATH =

# Additional import path used to resolve QML modules just for Qt Quick Designer
QML_DESIGNER_IMPORT_PATH =

# Default rules for deployment.
#qnx: target.path = /tmp/$${TARGET}/bin
#else: unix:!android: target.path = /opt/$${TARGET}/bin
#!isEmpty(target.path): INSTALLS += target
TARGET = stm32mp1Test
    target.files = stm32mp1Test
    target.path = /home/root
INSTALLS += target

Thanks for the help.

  • Печать

Страницы: [1]   Вниз

Тема: QT и c++  (Прочитано 4432 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
НеФормат

Привет, всем! Начал учить QT
Первый код:

Вводу g++ index.cpp -o index.bin
Выдаёт:

Пробовал ставить всякие библиотеки, не помогло
P.S. — В QtCretor то же самое  :o
Что делать?


Оффлайн
Olej

index.cpp:2:24: fatal error: QApplication: Нет такого файла или каталога
compilation terminated.

Что делать?

1. ну так нет же такого файла!

что делать?
2. идти в дефаулт include (/usr/include) и убеждаться, что там нет такого файла…

3. что дальше делать? разбираться какой (qt3, qt4) установлен, установлен ли, и куда (prefix):

[olej@notebook c++]$ env | grep QT
QTDIR=/usr/lib/qt-3.3
QTINC=/usr/lib/qt-3.3/include
QT_IM_MODULE=xim
QTLIB=/usr/lib/qt-3.3/lib
а потом убеждаться, что там такой файл действительно есть:

[olej@notebook include]$ ls /usr/lib/qt-3.3/include/qappl*
/usr/lib/qt-3.3/include/qapplication.h
а дальше правильно указывать в команде компиляции ;) … да ещё и библиотеки Qt там же указать ;)

4. у вас, скорее всего, qt4 — так ищите где и как он поставлен! — всё дело в путях.

« Последнее редактирование: 26 Февраля 2012, 03:40:42 от Olej »


Оффлайн
RazrFalcon

Qt Cretor то же самое

Не может быть.

qt-3.3 — очень смешно, вы его его нарыли-то?


Оффлайн
Olej

Qt Cretor то же самое

Не может быть.

qt-3.3 — очень смешно, вы его его нарыли-то?

qt3 — это может и очень смешно (кто понимает, или напротив, кто ничего не понимает) … но только у меня в системе вообще всё, что относится к Qt не ставилось просто, мне оно не надо… то, что показано — это та часть, которая доставлялась по зависимостям с каким-то пакетом из KDE.

Я вам показал как и где искать проблемы с установленным (возможно) у вас Qt:
— ищите пути установки (то, что задаётся prefix при сборке пакета Qt, вами или, скорее, дстрибьюторами вашими)…
— указывайте (как -I, -L, -l) их в опциях gcc, make или в переменных окружения env.


Оффлайн
VlaoMao

Можно пойти проще.
В папке с проектом

qmake -project
qmake
make
profit.


Оффлайн
Olej

Можно пойти проще.
В папке с проектом
qmake -project
qmake
make
profit.

конечно, это обычный способ сборки с Qt, но:
— для этого нужно создать проект;
— автор хочет это сделать просто компилятором GCC … с наскоку — но повозиться с такой сборкой имеет смысл (1 раз ;)) для понимания что (в GCC) и откуда берётся.
 


Оффлайн
VlaoMao

Для этого НЕ НУЖНО создавать проект, qmake его сам создаст.
После работы qmake в папке будет Makefile, который можно посмотреть/подправить/выучить для своих целей.

$ ls
main.cpp

$ qmake -project && ls
main.cpp  qt_ex.pro

$ qmake && ls
main.cpp  Makefile  qt_ex.pro

« Последнее редактирование: 26 Февраля 2012, 13:35:40 от VlaoMao »


Оффлайн
Olej

Для этого НЕ НУЖНО создавать проект, qmake его сам создаст.

Да, это я что-то ступил, уже несколько не смотрел в сторону Qt и со всем, что связано с KDE.
Тем более, то что вы подсказали, показывает как GCC использует специфические установки Qt.

Переписал я по-быстренькому программу нашего топик-спикера под свой «дремучий» ;) Qt:

#include "qapplication.h"
#include <qdialog.h>

int main(int argc, char** argv)
{
    QApplication app(argc, argv);
    QDialog  startDialog;

    startDialog.setMinimumWidth(200);
    startDialog.show();

    return app.exec();
}

Очень хорошо видно, как qmake подставляет дефаултные пути для -I и для -L :

[olej@notebook Qt]$ qmake -project
[olej@notebook Qt]$ ls
index.cc  Qt.pro
[olej@notebook Qt]$ qmake
[olej@notebook Qt]$ ls
index.cc  Makefile  Qt.pro
[olej@notebook Qt]$ make
g++ -c -pipe -Wall -W -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronou
g++  -o Qt index.o    -L/usr/lib/qt-3.3/lib -lqt-mt -lXext -lX11 -lm
[olej@notebook Qt]$ ls
index.cc  index.o  Makefile  Qt  Qt.pro
[olej@notebook Qt]$ ./Qt
^C

В qt4 будет то же, только с другими именами.


Оффлайн
VlaoMao

Ну во-первых, Qt != KDE.
А во-вторых надо использовать не

#include "qapplication.h"
#include <qdialog.h>
А

#include <QApplication>
#include <QDialog>

$ cat /usr/include/QtGui/QApplication
#include "qapplication.h"
Хотя вполне возможно, что на другой платформе содержимое файла QApplication будет другим, поэтому и надо подключать именно QApplication.
Хотя да, возможно в Qt3 и нет отдельного QApplication, есть qapplication.h, не думаю что сейчас кто-то ещё сильно пользуется Qt3.

« Последнее редактирование: 26 Февраля 2012, 14:30:07 от VlaoMao »


Оффлайн
Olej

Ну во-первых, Qt != KDE.

конечно Qt != KDE, но если кто-то живёт в другом DE, оконном окружении, например QNOME, да и все другие, то он и не пересекается никаким образом ни с Qt, ни с исполняющей системой Qt… а исполняющая система Qt, в таких случаях, и устанавливается (по зависимостям) при установке чего-то из ПО из комплекта KDE.

ведь в других DE/WM, как вы сами понимаете, есть масса других инструментов построения GUI, когда это нужно по-быстренькому что-то сделать: Tcl/Tk(wish), GTK, wxWidget и др. 

только таким образом Qt получается часто косвенно связано с KDE: где KDE — там Qt, а где KDE нет, то на таких рабочих местах часто и Qt нет. ;)

А во-вторых надо использовать не
#include "qapplication.h"
#include <qdialog.h>
А#include <QApplication>
#include <QDialog>
$ cat /usr/include/QtGui/QApplication
#include "qapplication.h"
Хотя вполне возможно, что на другой платформе содержимое файла QApplication будет другим, поэтому и надо подключать именно QApplication.

а вот это неверно!
/usr/include/QtGui — появится только тогда, когда вы специально установите средства разработки Qt, что-то типа пакета qt-develop, если этого не делать, то и каталога такого нет (как и входящих в него файлов).
а вот исполняющая система (инклуды, библиотеки) может устанавливаться с приложениями, и она присутствует всегда, вот те «qapplication.h», на которые именно и указывает -I опция при построении проекта.

Хотя да, возможно в Qt3 и нет отдельного QApplication, есть qapplication.h, не думаю что сейчас кто-то ещё сильно пользуется Qt3.

великое множество существующих и эксплуатируемых пакетов благополучно работают на Qt3, ничего чтоб особо существенного (не с точки зрения разработчика, а эксплуатации) Qt4 так и не принёс (например обещанной производительности), так что многие и многие давние пользователи Linux с появлением KDE4 от него отказались, а автоматом и от использования Qt4.


Оффлайн
НеФормат

Ну во-первых, Qt != KDE.

конечно Qt != KDE, но если кто-то живёт в другом DE, оконном окружении, например QNOME, да и все другие, то он и не пересекается никаким образом ни с Qt, ни с исполняющей системой Qt… а исполняющая система Qt, в таких случаях, и устанавливается (по зависимостям) при установке чего-то из ПО из комплекта KDE.

ведь в других DE/WM, как вы сами понимаете, есть масса других инструментов построения GUI, когда это нужно по-быстренькому что-то сделать: Tcl/Tk(wish), GTK, wxWidget и др. 

только таким образом Qt получается часто косвенно связано с KDE: где KDE — там Qt, а где KDE нет, то на таких рабочих местах часто и Qt нет. ;)

А во-вторых надо использовать не
#include "qapplication.h"
#include <qdialog.h>
А#include <QApplication>
#include <QDialog>
$ cat /usr/include/QtGui/QApplication
#include "qapplication.h"
Хотя вполне возможно, что на другой платформе содержимое файла QApplication будет другим, поэтому и надо подключать именно QApplication.

а вот это неверно!
/usr/include/QtGui — появится только тогда, когда вы специально установите средства разработки Qt, что-то типа пакета qt-develop, если этого не делать, то и каталога такого нет (как и входящих в него файлов).
а вот исполняющая система (инклуды, библиотеки) может устанавливаться с приложениями, и она присутствует всегда, вот те «qapplication.h», на которые именно и указывает -I опция при построении проекта.

Хотя да, возможно в Qt3 и нет отдельного QApplication, есть qapplication.h, не думаю что сейчас кто-то ещё сильно пользуется Qt3.

великое множество существующих и эксплуатируемых пакетов благополучно работают на Qt3, ничего чтоб особо существенного (не с точки зрения разработчика, а эксплуатации) Qt4 так и не принёс (например обещанной производительности), так что многие и многие давние пользователи Linux с появлением KDE4 от него отказались, а автоматом и от использования Qt4.

Спасибо, помогло =)


Оффлайн
VlaoMao

Ладно, пофиг на все выкладки, всё равно спор ни к чему не приведёт.

а вот это неверно!
/usr/include/QtGui — появится только тогда, когда вы специально установите средства разработки Qt, что-то типа пакета qt-develop, если этого не делать, то и каталога такого нет (как и входящих в него файлов).
а вот исполняющая система (инклуды, библиотеки) может устанавливаться с приложениями, и она присутствует всегда, вот те «qapplication.h», на которые именно и указывает -I опция при построении проекта.

Может в Ubuntu и так, не скажу. Скажу точно насчёт ArchLinux:

$ pkgfile `ls /usr/include/QtGui/*`
extra/qt
QtCreatora не видно, все файлы в этом каталоге принадлежат пакету qt. Но опять же, повторюсь, что это актуально только для ArchLinux, в Ubuntu всё может быть по-другому, поэтому я и писал про спор, возможно просто мы друг друга не поняли.


  • Печать

Страницы: [1]   Вверх

Ubuntu 12.04 LTS

Qt version:

$ qmake -v
QMake version 2.01a
Using Qt version 4.8.1 in /usr/lib/x86_64-linux-gnu

.pro file:

TEMPLATE += app
QT += core gui declarative
SOURCES += qtCppIntegration.cpp

.cpp file:

#include <QApplication>
#include <QQuickView>
#include <QUrl>

int main (int argc, char *argv[])
{
  QApplication app(argc, argv);
  QQuickView view;
  view.setSource(QUrl("/home/...plesQtQuickQML/anchors.qml"));
  view.show();
  return app.exec();
}

error:

$ make
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_DECLARATIVE_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtDeclarative -I/usr/include/qt4 -I. -o qtCppIntegration.o qtCppIntegration.cpp
qtCppIntegration.cpp:1:24: fatal error: QApplication: No such file or directory
compilation terminated.
make: *** [qtCppIntegration.o] Error 1

asked Sep 30, 2013 at 11:47

Aquarius_Girl's user avatar

Aquarius_GirlAquarius_Girl

21.3k62 gold badges219 silver badges397 bronze badges

2

This did the trick:

sudo apt-get install libqt4-dev

answered Sep 30, 2013 at 12:05

Aquarius_Girl's user avatar

Aquarius_GirlAquarius_Girl

21.3k62 gold badges219 silver badges397 bronze badges

0

For Ubuntu 14.04 if you get the same error:

ABC$ make
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I. -I. -I/usr/include/qt5 -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I. -o textpad.o textpad.cpp
textpad.cpp:1:24: fatal error: QApplication: No such file or directory
 #include <QApplication>
                        ^
compilation terminated.
make: *** [textpad.o] Error 1

Try qmake-qt4 and then make. Of course you can get all the QT4 libraries if its not present using:

sudo apt-get install libqt4-dev 

answered Oct 12, 2014 at 13:47

iampranabroy's user avatar

iampranabroyiampranabroy

1,6261 gold badge15 silver badges11 bronze badges

Ubuntu 12.04 LTS

Qt version:

$ qmake -v
QMake version 2.01a
Using Qt version 4.8.1 in /usr/lib/x86_64-linux-gnu

.pro file:

TEMPLATE += app
QT += core gui declarative
SOURCES += qtCppIntegration.cpp

.cpp file:

#include <QApplication>
#include <QQuickView>
#include <QUrl>

int main (int argc, char *argv[])
{
  QApplication app(argc, argv);
  QQuickView view;
  view.setSource(QUrl("/home/...plesQtQuickQML/anchors.qml"));
  view.show();
  return app.exec();
}

error:

$ make
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_DECLARATIVE_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtDeclarative -I/usr/include/qt4 -I. -o qtCppIntegration.o qtCppIntegration.cpp
qtCppIntegration.cpp:1:24: fatal error: QApplication: No such file or directory
compilation terminated.
make: *** [qtCppIntegration.o] Error 1

asked Sep 30, 2013 at 11:47

Aquarius_Girl's user avatar

Aquarius_GirlAquarius_Girl

21.3k62 gold badges219 silver badges397 bronze badges

2

This did the trick:

sudo apt-get install libqt4-dev

answered Sep 30, 2013 at 12:05

Aquarius_Girl's user avatar

Aquarius_GirlAquarius_Girl

21.3k62 gold badges219 silver badges397 bronze badges

0

For Ubuntu 14.04 if you get the same error:

ABC$ make
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I. -I. -I/usr/include/qt5 -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I. -o textpad.o textpad.cpp
textpad.cpp:1:24: fatal error: QApplication: No such file or directory
 #include <QApplication>
                        ^
compilation terminated.
make: *** [textpad.o] Error 1

Try qmake-qt4 and then make. Of course you can get all the QT4 libraries if its not present using:

sudo apt-get install libqt4-dev 

answered Oct 12, 2014 at 13:47

iampranabroy's user avatar

iampranabroyiampranabroy

1,6261 gold badge15 silver badges11 bronze badges

0 / 0 / 0

Регистрация: 08.01.2016

Сообщений: 37

1

03.12.2016, 20:39. Показов 9442. Ответов 9


Для курсовой в целях

стырить и выдать за своё

ознакомления, скачал исходники программы на qt (текстовый редактор). Но при запуске выдается ошибка «Ошибка: QApplication: нет такого файла или каталога, а за ним и другие классы для работы с формой тоже не подключены.
Вопрос: как подключить эти библиотеки. Или лучше как правильно запускать приложение, которого ты не писал.
PS Свои формы создавал, и QApplication и др. прекрасно работала.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



7275 / 6220 / 2833

Регистрация: 14.04.2014

Сообщений: 26,871

03.12.2016, 20:47

2

А для какой версии Qt эта программа? Там структура-то современная?



0



0 / 0 / 0

Регистрация: 08.01.2016

Сообщений: 37

03.12.2016, 20:52

 [ТС]

3

nmcf, ничего особо примечательного кроме чрезмерного использования указателей. Для какой версии qt писали не знаю. Но залили в 2013. Да и важно ли это? Пока ругается только на QApplication



0



7275 / 6220 / 2833

Регистрация: 14.04.2014

Сообщений: 26,871

03.12.2016, 21:01

4

Разумеется, важно. Там pro-файл может быть другой.
Что не так с QApplication? Текст ошибки где?



0



0 / 0 / 0

Регистрация: 08.01.2016

Сообщений: 37

03.12.2016, 21:22

 [ТС]

5

nmcf, ненавижу qt! Перезапустил creator и сейчас у него уже ошибка:
Ошибка при сборке/установке проекта TextEditor (комплект: Qt 5.6.1 (msvc2015_64))
Во время выполнения этапа «qmake». В проекте не могу подключить другой компилятор (ОНИ НЕ ВИДЯТСЯ)

Ок, вот:

Код

QWizard: No such file or directory
 #include <QWizard>

#include <QApplication> подсвечивает жёлтым и пишет что такого файла нет.



0



7275 / 6220 / 2833

Регистрация: 14.04.2014

Сообщений: 26,871

03.12.2016, 21:30

6

Покажи pro-файл и main().



0



Gadwil

0 / 0 / 0

Регистрация: 08.01.2016

Сообщений: 37

03.12.2016, 21:31

 [ТС]

7

nmcf,
.pro

Код

#-------------------------------------------------
#
# Project created by QtCreator 2013-10-10T16:01:30
#
#-------------------------------------------------

QT       += core gui

TARGET = TextEditor
TEMPLATE = app


SOURCES += main.cpp
        mainwindow.cpp printer.cpp texteditor.cpp wizard.cpp

HEADERS  += mainwindow.h printer.h texteditor.h wizard.h

FORMS    += mainwindow.ui

main

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char** argv) {
    QApplication app(argc, argv);
 
    QCoreApplication::setOrganizationName("MaximCorporation");
    QCoreApplication::setApplicationName("TextEditor");
 
    MainWindow window;
 
    window.show();
 
    return app.exec();
}



0



7275 / 6220 / 2833

Регистрация: 14.04.2014

Сообщений: 26,871

03.12.2016, 21:34

8



0



0 / 0 / 0

Регистрация: 08.01.2016

Сообщений: 37

03.12.2016, 21:38

 [ТС]

9

nmcf, nmcf, да, это дало результат, но он теперь что то другое не видит. Может проще скачать старый компилятор?



0



7275 / 6220 / 2833

Регистрация: 14.04.2014

Сообщений: 26,871

03.12.2016, 21:39

10

Ты очистку проекта и запуск qmake выполнили перед сборкой? Там в меню это есть.
Компилятор не при чём.



0



Автор Тема: Не компилится пример  (Прочитано 5413 раз)
kulc_hacker

Гость


Доброго времени суток всем. Только начал изучать QT. Читаю книгу Бланшета и Саммерфилда «QT4. Программирование GUI на С++». Но не могу скомпилировать первый же пример.
Вот мои действия (Ubuntu 14.04):
1) Создаю папку Edu.
2) В ней файл main.cpp:

#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel *label = new QLabel(«Hello Qt!»);
label->show();
return app.exec();
}

3) В терминале в папке Edu:
qmake -project
qmake Edu.pro
make

Вылазит вот это:

dns-master@dns-comp:~/Edu$ make
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I. -I. -I/usr/include/qt5 -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I. -o main.o main.cpp
main.cpp:1:24: fatal error: QApplication: Нет такого файла или каталога
 #include <QApplication>
                        ^
compilation terminated.
make: *** [main.o] Ошибка 1

Делал проекты через скачанный QtCreator. Если создавать проект в QtCreator’e с многочисленными непонятныи мне стандартными файлами, то работает (значит, класс QAplication все-таки существует). Однако я хочу сначала научиться делать проекты через терминал. Скажите пожалуйста, что я не так делаю.


Записан
Old

Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4338

Просмотр профиля


Пробуете примеры из Qt4, а у вас установлен Qt5?


Записан
kulc_hacker

Гость


Пробуете примеры из Qt4, а у вас установлен Qt5?

В учебниеке написано: «ссли не компилируется, проверьте версию qt. Неободимо qt 4.1.1 и выше». У меня стояла 4. Я решил попробовать 5. Поставил. Ничего не изменилось.


Записан
Bepec

Гость


В путях нет QtWidgets, в котором и лежит QApplication.
Вот и весь сказ.

PS если уж хотите начинать с терминала, сначала выучите все параметры командной строки компилятора Веселый ну по крайней мере используемые )


Записан
Old

Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4338

Просмотр профиля


В учебниеке написано: «ссли не компилируется, проверьте версию qt. Неободимо qt 4.1.1 и выше». У меня стояла 4. Я решил попробовать 5. Поставил. Ничего не изменилось.

Для пятерки нужно в pro файле добавлять:
QT += widgets


Записан
kulc_hacker

Гость


В путях нет QtWidgets, в котором и лежит QApplication.
Вот и весь сказ.

PS если уж хотите начинать с терминала, сначала выучите все параметры командной строки компилятора Веселый ну по крайней мере используемые )

В каких путях? Расскажите по подробнее. (в линуксе почти никогда не кодил, вот и не знаю ничего пока).


Записан
Old

Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4338

Просмотр профиля


Добавьте в свой pro файл указанную мной строку, запустила qmake и все у вас собереться.


Записан
Bepec

Гость


Читайте Old’а, он плохого не посоветует.  Улыбающийся


Записан
kulc_hacker

Гость


Добавьте в свой pro файл указанную мной строку, запустила qmake и все у вас собереться.

Спасибо, заработало. Объясните, что это за строка? Добавляет классы, связанные с виджетами?


Записан
Old

Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4338

Просмотр профиля


Спасибо, заработало. Объясните, что это за строка? Добавляет классы, связанные с виджетами?

Вы же читаете книгу, там, скорее всего, это будет освешенно. Улыбающийся


Записан
Bepec

Гость


За небольшую плату могу пояснить, объяснить и ответить на интересующие вопросы. А если и не знаю, то найти ответы на них Веселый


Записан

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Fatal error python h нет такого файла или каталога
  • Fatal error python h file not found
  • Fatal error pthread h no such file or directory windows
  • Fatal error project1 dpr 5 could not compile used unit unit1 pas
  • Fatal error portaudio h no such file or directory

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии