Как скомпилить “Hello world” в С++ Qt в Linux?

162
15 декабря 2016, 16:02

Самый простой пример:

#include <QApplication>  
#include <QLabel>
int main(int argc, char *argv[]) {  
    QApplication a(argc, argv);  
    Qlabel  label;  
    label.setText("Hello World");  
    label.show();  
    a.exec();  
}

Получаю ошибку:

test.cpp:1:51: fatal error: QApplication: No such file or directory
 #include <QApplication>

Не помогает:

#include <"/usr/include/qt4/QtGui/QApplication.h">  
#include <"/usr/include/qt4/QtGui/QLabel.h">

та же ошибка.

Все библиотеки у меня установлены.

Answer 1

Если нет желания делать это в QtCreator (например, слабая машина, 16мб памяти, первый пентиум) или ярый приверженец консоли, то можно все сделать.

Первое - нужно исправить ошибку в сорцах. Qlabel написан с маленькой l, должна быть заглавная.

После этого открываем консоль, переходим в каталог с сорцом и вводим команду qmake-qt4 -project (это так в федоре, в других системах бывают отличия, я видел qmake4 и просто qmake). Эта команда сгенерирует файл проекта где-то такого вида:

TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .
# Input
SOURCES += examle.cpp

Этот файл можно открыть QtCreator'ом, но мы легких путей не ищем.

Следующим шагом нужно запустить ту же команду qmake-qt4, но уже без параметров. Она на основе pro файла сгенерирует обычный Makefile. Теперь можно спокойно компилировать обычной командой make.

Поизучав Makefile изнутри, можно разобраться, как все-таки компилировать ручкам с консоли напрямую, но кол-во символов, которые нужно будет ввести, будет немаленькое. Так что лучше Makefile.

и как это вы label используете без QMainWindow?

Так можно. QLabel может быть окном.

READ ALSO
Строка в u32string. Как выполнить uppercase?

Строка в u32string. Как выполнить uppercase?

Использую строку u32stringКак выполнить преобразование uppercase, то есть маленькие символы преобразовать в большие?

231
QT Creator под windows не находит файл проекта (.pro)

QT Creator под windows не находит файл проекта (.pro)

Что делать, если QT Creator под windows не находит файл проекта (pro) и в лог постройки пишет следующее:

182
Грамотная передача исключений

Грамотная передача исключений

Знаю, что в JAVA передача исключения реализуется через объекты класса

247