Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: Fer от Октябрь 14, 2007, 21:36



Название: Помогите начать
Отправлено: Fer от Октябрь 14, 2007, 21:36
Здравствуй форум!
Купил книгу по QT4 - официальное издание на русском (зелёная такая), с диском. Скачал ещё какую то книгу на русском. Но сдвинуться с мёртвой точки не могу. Не могу скомпилировать ни одну программу из примеров - в обоих книгах этому делено от силы несколько десятков строк. И всё выходит вовсе не так, как написано там.
Сижу под виндой.

По совету сделал файл build.cmd -
qmake -project -o 00.pro 00.cpp
qmake -makefile 00.pro
make -f Makefile.Release
pause

Сама прога состоит из одного файла hello.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();
}

Итогом становится:
Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.

C:\Qt\Qt4Book\chap01\my>build

C:\Qt\Qt4Book\chap01\my>qmake -project -o 00.pro 00.cpp

C:\Qt\Qt4Book\chap01\my>qmake -makefile 00.pro

C:\Qt\Qt4Book\chap01\my>rem minigw32 -make -f Makefile.Debug

C:\Qt\Qt4Book\chap01\my>make -f Makefile.Release
MAKE Version 5.2  Copyright (c) 1987, 1998 Inprise Corp.
        g++ -c -O2 -O2 -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPOR
T -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEE
DS_QMAIN -I"D:/Qt/4.1.1/include/QtCore" -I"D:/Qt/4.1.1/include/QtGui" -I"D:/Qt/4
.1.1/include" -I"." -I"D:/Qt/4.1.1/include/ActiveQt" -I"release" -I"." -I"D:/Qt/
4.1.1/mkspecs/win32-g++" -o release\my.o my.cpp
"g++" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

** error 1 ** deleting release\my.o

C:\Qt\Qt4Book\chap01\my>pause
Для продолжения нажмите любую клавишу . . .

Если делаем по официальной книге то там просят в консоле просто написать  make - в итоге -

C:\Qt\Qt4Book\chap01\my>make
MAKE Version 5.2  Copyright (c) 1987, 1998 Inprise Corp.
Fatal: 'FORCE' does not exist - don't know how to make it

C:\Qt\Qt4Book\chap01\my>

Кто-ниубдь по-человечески объяснит как нужно получать exe файл?


Название: Re: Помогите начать
Отправлено: Kainit от Октябрь 14, 2007, 21:43
Объяснять как пользоваться компиляторам занятие нудное и малополезное (в интернете и на этом сайте миллион топиков подобных этому).
Скачайте Qt Сommercial + Qt Visual Studio Integrator и не мучайтесь, особенно если вы новичок.


Название: Re: Помогите начать
Отправлено: Fer от Октябрь 14, 2007, 21:53
Ага - а заодно и Visual Studio скачайте.
Неужели трудно объяснить что мне отвечает компилятор? Почему команда make отвечает что не находит FORCE?
На этом сайте и в сети уже поискал. Но что-то ничего вразумительного. В книгах всё происходит само собой.
Может кто-нибудь не сочтёт себя снобом и удосужится объяснить азы?



Название: Re: Помогите начать
Отправлено: ритт от Октябрь 14, 2007, 23:15
mingw поставь, раз хочешь мэйк юзать
если стоит, значит, пути к мингв/бин не добавлены
и т.д.

зы боюсь, за этим постом последую "помогите продолжить" и "помогите кончить"


Название: Re: Помогите начать
Отправлено: Fer от Октябрь 14, 2007, 23:26
Setting up a MinGW/Qt only environment...
-- QTDIR set to D:\Qt\4.1.1
-- PATH set to D:\Qt\4.1.1\bin
-- Adding D:\MinGW\bin to PATH
-- Adding D:\WINDOWS\System32 to PATH
-- QMAKESPEC set to win32-g++

D:\Qt\4.1.1>

Всё пучком. Оно стоит. Ещё варианты.
Насчёт продолжить и  кончить - собственно не за этим ли форум создан?


Название: Re: Помогите начать
Отправлено: UVV от Октябрь 15, 2007, 06:19
Скачайте Qt Сommercial + Qt Visual Studio Integrator и не мучайтесь, особенно если вы новичок.
Весьма неразумный совет. Вы предлагаете своровать продуктов на несколько тысяч долларов!


Название: Re: Помогите начать
Отправлено: UVV от Октябрь 15, 2007, 06:22
Проверь PATH. Вроде бы компилятор у тебя не находится.


Название: Re: Помогите начать
Отправлено: Fer от Октябрь 15, 2007, 06:47
Значит ставлюсь с диска к книге.
Ставится Qt, ставится компилятор MinGW взаимно прописываясь при установке. Затем по ярлыку Command Prompt запускаемся и принимаем лицензию. Среда выкатывает что пути прописаны - (см. пост  5).
Затем в произвольном каталоге создаём файл hello.cpp
В том же каталоге вызываем командную строку и пишем
qmake -project
Без вопросов получаем в каталоге новый файл hello.pro с содержимым -
######################################################################
# Automatically generated by qmake (2.00a) ?? 15. ??? 07:37:31 2007
######################################################################

TEMPLATE = app
TARGET +=
DEPENDPATH += .
INCLUDEPATH += .

# Input
SOURCES += hello.cpp

Затем в консоли набираем qmake
Без вопросов получаем ещё кучу файлов и каталогов -
Makefile
Makefile.debug
Makefile.release
и два каталога -
Debug
Release

Затем мы должны набрать make
Набираю make - получаю

Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.

C:\Qt\Qt4Book\chap01\hello>qmake -project

C:\Qt\Qt4Book\chap01\hello>qmake

C:\Qt\Qt4Book\chap01\hello>make
MAKE Version 5.2  Copyright (c) 1987, 1998 Inprise Corp.
Fatal: 'FORCE' does not exist - don't know how to make it

C:\Qt\Qt4Book\chap01\hello>


Итак решение для всех мучавшихся найдено. Нельзя набивать все эти команды в новой консоли. Требуется из ярлыка command prompt в меню установленой среды командами CD перейти в каталог где будет компилиться программа!
Всем спасибо за участие.
Ответ простой - установить среду, компилятор. убидитсья что пути прописаны, компилить, добираясь до каталога с программой только через ярлык в установочном меню.


Название: Re: Помогите начать
Отправлено: QCasper от Октябрь 15, 2007, 08:35
Хех, а так не понятно, что если в среде не прописаны переменные окружения (пути), система не найдет того, что по этим путям находится? :) Понятное дело, что если вы закрываете сеанс, в котором в окружении было что-то прописано, то эта информация теряется и в новом автоматически никто за вас её туда не пропишет :)


Название: Re: Помогите начать
Отправлено: ритт от Октябрь 15, 2007, 08:40
гы-гы...я даже представить себе не мог, что проблема в этом
буду с нетерпением ждать топика "продолжить"!


Название: Re: Помогите начать
Отправлено: Sergey B. от Октябрь 15, 2007, 09:01
Цитировать
Нельзя набивать все эти команды в новой консоли. Требуется из ярлыка command prompt в меню установленой среды командами CD перейти в каталог где будет компилиться программа!
Всем спасибо за участие.

Может начать пока с изучения шелла, а не С++?

Цитировать
Ответ простой - установить среду, компилятор. убидитсья что пути прописаны, компилить, добираясь до каталога с программой только через ярлык в установочном меню.

Если пути и переменные прописаны не обязательно через ярлык в установочном меню.


Название: Re: Помогите начать
Отправлено: Fer от Октябрь 15, 2007, 20:50
Ну вот у меня было мнение, что такие вещи прописываются во что-то типа autoconfig и до сноса программы остаются неизменными - как windir или temp. А тут оказывается переменные теряются при запуске консоли.
Старнно что эти настройки не прописаны жёстко.


Название: Re: Помогите начать
Отправлено: QCasper от Октябрь 15, 2007, 21:02
Если Вы бы обратили внимание на то, куда указывает ярлык, и изучили, вобщем-то простое содержимое файла, Вам бы стало понятно, что это ничто иное как переменные окружения, и ничего больше.


Название: Re: Помогите начать
Отправлено: Sergeich от Октябрь 15, 2007, 23:30
Камрад, судя по логам (MAKE Version 5.2  Copyright (c) 1987, 1998 Inprise Corp) у тя стоит Borland C++ Builder 6  и когда ты вызываешь make, юзается именно борландовский, а не минговный. Пропиши путя на MinGW в PATH перед борландовскими.


Название: Re: Помогите начать
Отправлено: Sergeich от Октябрь 15, 2007, 23:40
Гыыы...
От хера - феру
Цитировать
боюсь, за этим постом последуют "помогите продолжить" и "помогите кончить"
От фера - херу
Цитировать
Насчёт продолжить и  кончить - собственно не за этим ли форум создан?


Название: Re: Помогите начать
Отправлено: Fer от Октябрь 16, 2007, 23:52
О! Оказывается сколько инфы можно выудить из такого лога - огромное спасибо. Действительно - стоит Borland Delphi 7.0 - пафы подправил, хотя елси работать через ярлык юзается нужный.

Setting up a MinGW/Qt only environment...
-- QTDIR set to D:\Qt\4.1.1
-- PATH set to D:\Qt\4.1.1\bin
-- Adding D:\MinGW\bin to PATH
-- Adding D:\WINDOWS\System32 to PATH
-- QMAKESPEC set to win32-g++

D:\Qt\4.1.1>cd c:
C:\

D:\Qt\4.1.1>c:

C:\>cdqt
"cdqt" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

C:\>cd qt

C:\Qt>cd qt4book

C:\Qt\Qt4Book>cd chap01

C:\Qt\Qt4Book\chap01>cd hello

C:\Qt\Qt4Book\chap01\hello>qmake -project

C:\Qt\Qt4Book\chap01\hello>qmake

C:\Qt\Qt4Book\chap01\hello>make
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `C:/Qt/Qt4Book/chap01/hello'
g++ -c -O2 -O2 -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_D
LL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN
 -I"D:/Qt/4.1.1/include/QtCore" -I"D:/Qt/4.1.1/include/QtGui" -I"D:/Qt/4.1.1/inc
lude" -I"." -I"D:/Qt/4.1.1/include/ActiveQt" -I"release" -I"." -I"D:/Qt/4.1.1/mk
specs/win32-g++" -o release\hello.o hello.cpp
g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runt
ime-pseudo-reloc -Wl,-s -Wl,-s -Wl,-subsystem,windows -o "release\hello.exe" rel
ease\hello.o  -L"D:\Qt\4.1.1\lib" -lmingw32 -lqtmain -lQtGui4 -lQtCore4
mingw32-make[1]: Leaving directory `C:/Qt/Qt4Book/chap01/hello'

C:\Qt\Qt4Book\chap01\hello>


Название: Re: Помогите начать
Отправлено: ритт от Октябрь 17, 2007, 01:14
удали ветку :)


Название: Re: Помогите начать
Отправлено: T800 от Октябрь 17, 2007, 01:46
ветку удалять не следует, 90% проценторв теперечных программеров, начиная таким образом, делают подобные ляпы. Не учат их этому сейчас. Они порой даже какая версии Винды не знают, не то что о переменных окружения.Остальные - это те кто являютя "волшебниками" , админами или хакерами. Дабы тему по второму разу не поднимали  стоит оставить для потомков ))).

З.Ы. Часто бывает когда стоит несколько средств разработки  одно начинает теребить компилер другого.... Ведь система хватает первый попавшийся экзешник! А все возмущенные вопросы - к админу (((


Название: Re: Помогите начать
Отправлено: ритт от Октябрь 17, 2007, 04:04
мне кажется, те, кто не знают версию своей винды, не будут пользоваться поиском (ибо не знают как)


Название: Re: Помогите начать
Отправлено: T800 от Октябрь 17, 2007, 21:50
И таких я знал... Одна программистка вообще спросила какие бывают процессоры и у какого больше памяти (имя в виду CPU и RAM). И это программистка асм изучает  ::)
Если поиск интерактивный - то запросто. Я слишком часто  случаем пытаясь ответить на вопрос, заданный юзером (причем юзер - инженер, программист, высшее образование + ученая степень) на вопрос "Какая у вас система и стоит ли сервис пак" получаю - "не знаю,... но вроде новая"  >:(