16:40 

Qt

Добрый день.
Задали создать графический калькулятор(не в консоли). Т.к. работаю в Ubuntu установил Qt creator. Нашел учебник, пробовал скомпилировать в консоли cpp файл, выдавал не понятную ошибку.
Вопрос: возможно ли компилирование данных программ в консоли и можно ли с помощью стандартных средств языка создать графическое приложение?
Заранее спасибо!)

@темы: *nix, C++

Комментарии
2014-11-16 в 16:51 

Trotil
возможно.

2014-11-16 в 16:55 

А не подскажете как это сделать?

2014-11-16 в 16:59 

Юрий Рэйн
Mik94, В Ubuntu? Может оказаться проще попробовать С++ и wxWidgets (Для создания окошек можно попробовать wxFormBuilder. )

2014-11-16 в 17:02 

Попробуем! Спасибо)

2014-11-16 в 17:16 

_DOOMer_
>> с помощью стандартных средств языка создать графическое приложение?

Нет. Стандаратная библиотеа C++ не содержит ничего связанного с графическим интерфейсом.

Используйте Qt раз уж вы установили QtCreator

qt-project.org/doc/qt-4.8/widgets-calculator.ht...

2014-11-16 в 17:28 

Trotil
Shambler,

> Вопрос: возможно ли компилирование данных программ в консоли
> А не подскажете как это сделать?

говорят, что-то подобное работает...

g++ -Wl,-O1 -Wl,-rpath,/opt/qt_47x/lib -o main main.o -L/opt/qt_47x/lib -L/usr/X11R6/lib -lQtDeclarative -L/opt/qt_47x/lib -lQtScript -lQtSvg -L/usr/X11R6/lib -lQtSql -lQtXmlPatterns -lQtNetwork -lQtGui -lQtCore -lpthread

2014-11-16 в 17:38 

_DOOMer_
Работать то работает. Но это не означает что графическая программа создается стандартными средствами языка. Тут как минимум идёт линковка с Qt. Перетащите собранный бинарник на машину, на которой не установлена Qt - и фиг он запустится.

>> -lQtScript -lQtSvg -lQtSql -lQtXmlPatterns -lQtNetwork -lQtGui -lQtCore

Из всего этого для минимальной графической софтины, использующей Qt для построения интерфейса пользователя, нужны только "-lQtGui -lQtCore".

2014-11-16 в 17:50 

Сразу вопрос по коду.
Код взят из учебника по Qt4.8.

При компиляции файла .pro выдает ошибки:
1. variable 'QApplication app' has initializer but incomplete type QApplication(argc, argv);
^
2. 'QLabel' was not declared in this scope QLabel lbl("Hello, World!");
3. lbl was not declarete in this scope lbl.show();
^

2014-11-16 в 18:03 

Trotil
> Перетащите собранный бинарник на машину, на которой не установлена Qt - и фиг он запустится.
-static не поможет?

Но это не означает что графическая программа создается стандартными средствами языка.
спасибо, я знаю. Просто у топикстартера сразу два вопроса.
P.S. Xlib - таки стандартное средство языка: dfe3300.karelia.ru/koi/posob/X/osnov.htm

2014-11-16 в 18:10 

_DOOMer_
Trotil

> -static не поможет?

Для этого самую Qt перед этим надо собратить как статическую библиотеку (не самая простая задача, птстоянно насчёт этого вопросы на профильных форумах появляются).

>> P.S. Xlib - таки стандартное средство языка

Не совсем :) 1. Для винды его нет (а стандартные средства подразумеваю то что они будут "почти" одинаково компилироваться на рахных платформах). 2. На машине с Linux-based системой так же может не бытьустановлено Xlib (на каком-то-нить сервере, крутящем что-то веб-ориентированное) - но это уже частный случай.

2014-11-16 в 18:14 

_DOOMer_
Mik94, как именно компилируете? Из консоли, вызовом qmake а затем make - проблем не должно быть, показывайте main.cpp и pro-файл.
Если напрямую через g++ ... - показывайте строку выхова компилятора и полный его выхлоп.

2014-11-16 в 18:17 

Через qmake -project, qmake, make
pro-файл:

А main-файл, я скидывал до этого.

2014-11-16 в 18:26 

_DOOMer_
Проверил. Работает всею. Вот выхлоп консоли:


2014-11-16 в 19:08 

У меня почему-то выдал ошибку об отсутствии файла QtGui..(

2014-11-16 в 19:17 

_DOOMer_
Добавьте в .pro файл следующее:

QT += core gui

хотя у меня и без него собралось и запустилось

Скопируйте полный вовд компилятора о процессе сборки о шибке.

2014-11-17 в 03:36 

g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o Main.o Main.cpp
Main.cpp:1:17: fatal error: QtGui: нет такого файла или каталога

2014-11-17 в 09:31 

Trotil
выполни
ls -l /usr/include/qt4/

2014-11-17 в 14:00 

Получилось. Спасибо большое за помощь!!! Очень благодарен!)

Комментирование для вас недоступно.
Для того, чтобы получить возможность комментировать, авторизуйтесь:
 
РегистрацияЗабыли пароль?

ru_programming

главная