Russian Qt Forum
Ноябрь 24, 2024, 18:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не компилит простой код  (Прочитано 7014 раз)
Layer
Гость
« : Сентябрь 25, 2010, 12:10 »

Код
C++ (Qt)
 
Пишу на плюсах, пару дней назад решил попробовать кьют..
скачал комплект с оф. сайта версии 4.7 и creator 2.0.1

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

Код
Bash
set MINGW=...
set QMAKESPEC=win32-g++
set QTDIR=....
set PATH=%QTDIR%/bin;%MINGW%/bin
 

теперь когда захожу в Creator Инструменты->Параметры->Qt4
и там теперь в автоопределении есть путь до qmake.exe
сразу после установки, там было написано что не определено..
думал это как то повлияет но всё равно возникли ошибки при компиляции...

вот такой код выполняет без проблем:
Код
C++ (Qt)
#include <QtCore/QCoreApplication>
#include <QtGui/QLabel>
#include <Qt/qlabel.h>
#include <iostream>
#include <stdio.h>
#include <conio.h>
 
using namespace std;
int main(int argc, char *argv[])
{
   QCoreApplication a(argc, argv);
   cout << "Hi!" << endl;
   char ch;
   cin >> ch;
   getch();
   return 0;
   //a.exec();
}
 

а вот на этот простой пример из книги

Код
C++ (Qt)
#include <QtCore/QCoreApplication>
#include <QtGui/QLabel>
#include <Qt/qlabel.h>
#include <iostream>
#include <stdio.h>
#include <conio.h>
 
using namespace std;
int main(int argc, char *argv[])
{
   QCoreApplication a(argc, argv);
   QLabel lbl("aaa");
   lbl.show();
   return 0;
   //a.exec();
 

выдает ошибки..

текст консоли сборки:
Выполняется сборка проекта console_first...
Настройки не изменились, этап qmake пропускается.
Запускается "C:/Qt/2010.05/mingw/bin/mingw32-make.exe" -w
mingw32-make: Entering directory `D:/Archive/work/Qt_prj/console_first-build-desktop'

C:/Qt/2010.05/mingw/bin/mingw32-make -f Makefile.Debug

mingw32-make[1]: Entering directory `D:/Archive/work/Qt_prj/console_first-build-desktop'

g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I'c:/Qt/2010.05/qt/include/QtCore' -I'c:/Qt/2010.05/qt/include' -I'c:/Qt/2010.05/qt/include/ActiveQt' -I'debug' -I'../console_first' -I'.' -I'c:/Qt/2010.05/qt/mkspecs/win32-g++' -o debug/main.o ../console_first/main.cpp

In file included from ../console_first/main.cpp:3:

c:/Qt/2010.05/qt/include/Qt/qlabel.h:3: warning: ignoring #pragma warning

g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-subsystem,console -mthreads -Wl -o debug/console_first.exe debug/main.o  -L'c:/Qt/2010.05/qt/lib' -lQtCored4

mingw32-make[1]: Leaving directory `D:/Archive/work/Qt_prj/console_first-build-desktop'

mingw32-make: Leaving directory `D:/Archive/work/Qt_prj/console_first-build-desktop'

debug/main.o: In function `main':

D:\Archive\work\Qt_prj\console_first-build-desktop/../console_first/main.cpp:12: undefined reference to `_imp___ZN6QLabelC1ERK7QStringP7QWidget6QFlagsIN2Qt10WindowTypeEE'

D:\Archive\work\Qt_prj\console_first-build-desktop/../console_first/main.cpp:20: undefined reference to `_imp___ZN6QLabelD1Ev'

D:\Archive\work\Qt_prj\console_first-build-desktop/../console_first/main.cpp:20: undefined reference to `_imp___ZN6QLabelD1Ev'

collect2: ld returned 1 exit status

mingw32-make[1]: *** [debug/console_first.exe] Error 1

mingw32-make: *** [debug] Error 2

Процесс "C:/Qt/2010.05/mingw/bin/mingw32-make.exe" завершился с кодом %2.
Возникла ошибка при сборке проекта console_first (цель: Настольный компьютер)
Во время выполнения сборки на этапе "Сборка"

подскажите чего не так у меня сделано или настроено?
Записан
MuLLIKA
Гость
« Ответ #1 : Сентябрь 25, 2010, 12:17 »

может так долдно быть  return a.exec();
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #2 : Сентябрь 25, 2010, 12:24 »

а кто вас просил лезть куда не просят? Креатору чхать на патх, он сам всё прописывает. Но у вас, похоже, всё прописано правильно.
покажите лучше .pro файл
Записан
BRE
Гость
« Ответ #3 : Сентябрь 25, 2010, 12:42 »

QCoreApplication + виджеты?
Для QLabel нужно QApplication + подключить в проекте линковку QtGui.
Записан
Layer
Гость
« Ответ #4 : Сентябрь 25, 2010, 12:43 »

может так долдно быть  return a.exec();

пробовал и так.. то же самое..
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #5 : Сентябрь 25, 2010, 12:46 »

подключить в проекте линковку QtGui.
вот я и прошу про-файл:)
Записан
BRE
Гость
« Ответ #6 : Сентябрь 25, 2010, 12:47 »

вот я и прошу про-файл:)
Ну там и по выводу компилятора видно, что QtGui не подключается.  Улыбающийся
Записан
Layer
Гость
« Ответ #7 : Сентябрь 25, 2010, 12:47 »

а кто вас просил лезть куда не просят? Креатору чхать на патх, он сам всё прописывает. Но у вас, похоже, всё прописано правильно.
покажите лучше .pro файл

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

про-файл:

QT       += core
QT       -= gui

TARGET = console_first
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app

SOURCES += main.cpp
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #8 : Сентябрь 25, 2010, 12:51 »

убрать
QT       -= gui
убрать
CONFIG   += console
CONFIG   -= app_bundle
Записан
Layer
Гость
« Ответ #9 : Сентябрь 25, 2010, 12:52 »

QCoreApplication + виджеты?
Для QLabel нужно QApplication + подключить в проекте линковку QtGui.

QCoreApplication  - подключает видимо визард самостоятельно..

прописываю..
#include <QtGui/QApplication>

ошибки выдает те же самые

в книге вообще кроме
#include <QtGui>
ничего нету

а у меня creator говорит что нет такой директории..

видимо просто недосмотрел я чего-то) не попалась нужной информации..
подскажите по поводу линковки чего где надо подключить?
Записан
BRE
Гость
« Ответ #10 : Сентябрь 25, 2010, 12:54 »

подскажите по поводу линковки чего где надо подключить?
Читай выше ответ Авварон.

После подключения модуля gui, все нужные заголовочные файлы (QApplication, QLabel, ...) будут доступны.
Записан
Layer
Гость
« Ответ #11 : Сентябрь 25, 2010, 13:07 »

подскажите по поводу линковки чего где надо подключить?
Читай выше ответ Авварон.

После подключения модуля gui, все нужные заголовочные файлы (QApplication, QLabel, ...) будут доступны.

спасибо! теперь работает как полагается)

но в книге ничего не было сказано про настройку pro-файла
буду разбираться:)
« Последнее редактирование: Сентябрь 25, 2010, 13:11 от Layer » Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #12 : Сентябрь 25, 2010, 13:13 »

при создании проекта вы указываете тип - консоль или гуи.
а в книге нет ничего, потому что дефолтные настройки соотвествуют гуи проекту (по хорошему QT       += core тоже не нужно, тк qmake по умолчанию подключает core и gui)
Записан
Layer
Гость
« Ответ #13 : Сентябрь 25, 2010, 13:28 »

при создании проекта вы указываете тип - консоль или гуи.
а в книге нет ничего, потому что дефолтные настройки соотвествуют гуи проекту (по хорошему QT       += core тоже не нужно, тк qmake по умолчанию подключает core и gui)

большое спасибо=)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.116 секунд. Запросов: 23.