Russian Qt Forum
Ноябрь 22, 2024, 14:49
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Компиляторы и платформы
>
Компиляторы
>
Ошибки при компиляции с помощью MinGW
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Ошибки при компиляции с помощью MinGW (Прочитано 23664 раз)
Cyrax
Гость
Ошибки при компиляции с помощью MinGW
«
:
Август 16, 2006, 20:59 »
Собираюсь писать большой проект под Qt. Поставил MinGW и Qt. Для проверки написал маленькую тестовую прогу. qmake'ом создал makefile. Затем собираю проект make'ом. На экран выводятся следующие сообщения об ошибках:
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `D:/Qt_testing/test`
g++ -c -02 -02 -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"C:/Qt/4.l.2/include/QtCore" -I"C:/Qt/4.1.2/include/QtGui" -I"C:/Qt/4.1.2/inc
lude" -I"." ?I"C:/Qt/4.l.2/include/ActiveQt" -I"release" -I"." -I"C:/Qt/4.1-2/mk
specs/win32-g++" -о release\test-o test-cpp
"C:\DOCUME~1\CYRAX" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
mingw32-make[l]: *** [release\test-о] Error 1
mingw32-make[1]: Leaving directory `D:/_Qt_testing/test`
mingw32-make: *** [release] Error 2
Вопрос в том, почему make лезет в "C:\DOCUME~1\CYRAX", когда у меня каталог называется "C:\DOCUME~1\CYRAX (ADMIN)"...
И вообще, в чём может быть проблема?
Дополнительные вопросы
1. Как мотать окно в Far'е?
2. Почему при установке Qt с помощью инсталлятора Qt-исходники компилятся быстро, а компиляция Qt-исходников MinGW'ином идёт довольно долго.
Записан
Вудруф
Гость
Ошибки при компиляции с помощью MinGW
«
Ответ #1 :
Август 17, 2006, 06:02 »
Не должно быть пробелов, указывай сокращённое (DOS'овское) имя..
добавлено спустя 1 минуту:
Никак. Но можно расширить по Ctrl+F9, видно будет больше.
В инсталляторе находится часть бинарников, в сырцах, что логично, их нет
Записан
Cyrax
Гость
Ошибки при компиляции с помощью MinGW
«
Ответ #2 :
Август 17, 2006, 22:24 »
Я изменил переменную среды TMP. Именно она и использовалась при сборке. Можно было изменить имя профиля... Кстати, будь слово "Documents" в имени каталога "Documents and Settings" короче хотя бы на один символ, то возникла бы та же ошибка...
Exe'шник я получил, но тут возник вопрос, где в makefil'е указывается переменная среды TMP. Ни в каких makefil'ах проекта я её не нашел. Или это сам make использует эту переменную?
Интересно, можно ли при сборке make'ом работать с глобальными переменными среды (системными перемнными), а не с переменными среды пользователя. Тогда ошибки бы не возникло...
Насчёт мотания в Far'е. Раз нельзя мотать, то как посмотреть параметры, например qmake'а? Перенапрвить вывод в файл? Слишком трудоёмко...
Теперь по поводу компиляции исходников Qt. Если в инсталляторе уже имеются некоторые готовые бинарники, то зачем там же (в комплекте) держать исходники для этих бинарников. Конечно, полные исходники нужны, но не лучше ли обойтись без бинарников, путём полной компиляции исходников. Времени это займёт, конечно, намного больше, но в случае с бинарниками компилится release-версия и если мне понадобится debug-версия, то придётся перекомпиливать все исходники заново - почти двойная работа. Или инсталлятор как-то можно заставить компилить debug-версию, чтоб не делать это потом самому? Но в этом случае всё равно придётся перекомпилить готовые release-бинарники.
Ещё такой вопрос. Чем отличаются MinGW'иновский make и Qt-шный configure? Мог бы я собрать Qt make'ом?
Не совсем понятна ситуация с tmake'ом. Везде пишут, что это скрипт на Perl'е, что для его использования нужен Perl. Но когда я ставил Qt2, то нашёл в одном из его каталогов (вместе с qmake) tmake.exe. Скрипт там тоже был, но откуда взялся exe'шник...
Напоследок, вопрос не по теме. Как в Win'де посмотреть, какие порты заняты и какими прогами. И как принудительно освободить порт.
PS: открыл тему по Qt, связанную с генерацией отчётов.
Записан
Orlov_O
Гость
Ошибки при компиляции с помощью MinGW
«
Ответ #3 :
Август 18, 2006, 06:38 »
по поводу сборки и мотания ответов: пользоваться лучше cmd.exe с высотой буфера 1024 строки. всё видно
В ярлычке всё это устанавливается.
Записан
Вудруф
Гость
Ошибки при компиляции с помощью MinGW
«
Ответ #4 :
Август 18, 2006, 07:00 »
Именно так я и делал: перенаправлял в Far'е, а потом по Ctrl + Tab переключался между консолью и созданным файлом.
Сборка Qt и происходит выполнением mingw32-make, а configure всего лишь из файлов проекта (.pro) создаёт необходимые makefile.
Записан
Cyrax
Гость
Ошибки при компиляции с помощью MinGW
«
Ответ #5 :
Август 18, 2006, 21:40 »
Почему именно 1024? Ведь можно и больше (и меньше)...
Что касается cmd.exe, то тот же самый буфер можно установить и для Far'а. Но есть два НО. Во-первых, при запуске Far'а (когда вертикальный размер буфера превышает вертикальный размер экрана) вертикальный scrollbar устанавливается в нижнее положение, а в случае с cmd.exe - в верхнее. Во-вторых, не увидим одновременно и "шапку", и "подвал" Far'а.
Получается, есть два варианта: либо cmd.exe с расширенным экранным буфером, либо Far с перенапралением вывода в файл.
Спасибо всем за советы
Записан
Cyrax
Гость
Ошибки при компиляции с помощью MinGW
«
Ответ #6 :
Сентябрь 22, 2006, 20:16 »
Хочу выяснить вот что. При установке Qt (4.1.4) выводится следующее сообщение:
There is a problem with MinGW installation:
The installer could not find a valid C:\MinGW\include\w32api.h
(The supported version is 3.2)
Do you still want to continue? (Your installation may not work)
Заголовочный файл w32api.h там есть, версия - 3.6. Qt у меня 4.1.4 - последняя версия под винду, так почему его инсталлятор требует версию w32api.h не выше 3.2, почему не принимает 3.6 ?
Как и на чём может сказаться такая разница в версиях (Qt нормально ставится, несмотря на это предупреждение) ?
Записан
Вудруф
Гость
Ошибки при компиляции с помощью MinGW
«
Ответ #7 :
Сентябрь 25, 2006, 06:48 »
Я так понимаю, ты устанавливаешь бинарники? Тогда может отразиться на том, что версия Qt, скомпилированная со старым w32api.h, может стать несовместима с библиотекой mingw32.dll.
Поправьте, если не прав.
Записан
Cyrax
Гость
Ошибки при компиляции с помощью MinGW
«
Ответ #8 :
Сентябрь 25, 2006, 21:36 »
Не понятно, почему самый последний Qt (4.1.4) требует старый w32api.h...
Записан
Вудруф
Гость
Ошибки при компиляции с помощью MinGW
«
Ответ #9 :
Сентябрь 26, 2006, 06:54 »
Как вариант - они пользуются версией, которая у них была на момент выпуска 4.0.0 . Возможно, это связано с тем, что они заявляют о бинарной совместимости в рамках старшей версии, а с новой версией библиотеки она может потеряться.
Записан
C300G
Гость
Ошибки при компиляции с помощью MinGW
«
Ответ #10 :
Сентябрь 27, 2006, 11:24 »
Цитата: "Cyrax"
Как и на чём может сказаться такая разница в версиях (Qt нормально ставится, несмотря на это предупреждение) ?
При установке - забил на это. До сих пор никак не сказалось.
Записан
Cyrax
Гость
Ошибки при компиляции с помощью MinGW
«
Ответ #11 :
Сентябрь 30, 2006, 15:12 »
Теперь не могу получить debug'ный exe'шник (make debug или make all).
Ошибки в ответ на make all:
mingw32-make all
mingw32-make -f Makefile.Release all
mingw32-make[1]: Entering directory `C:/Documents and Settings/revdokim.TLM/workspace/test_3'
g++ -c -O2 -O2 -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"C:/GPL/Qt/4.1.4/include/QtCore" -I"C:/GPL/Qt/4.1.4/include/QtGui" -I"C:/GPL/Qt/4.1.4/include" -I"." -I"C:/GPL/Qt/4.1.4/include/ActiveQt" -I"release" -I"." -I"..\..\..\..\GPL\Qt\4.1.4\mkspecs\win32-g++" -o release\test_3.o test_3.cpp
g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-s -Wl,-subsystem,windows -o "release\test_3.exe" release\test_3.o -L"c:\GPL\Qt\4.1.4\lib" -lmingw32 -lqtmain -lQtGui4 -lQtCore4
mingw32-make[1]: Leaving directory `C:/Documents and Settings/revdokim.TLM/workspace/test_3'
mingw32-make -f Makefile.Debug all
mingw32-make[1]: Entering directory `C:/Documents and Settings/revdokim.TLM/workspace/test_3'
g++ -c -g -g -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"C:/GPL/Qt/4.1.4/include/QtCore" -I"C:/GPL/Qt/4.1.4/include/QtGui" -I"C:/GPL/Qt/4.1.4/include" -I"." -I"C:/GPL/Qt/4.1.4/include/ActiveQt" -I"debug" -I"." -I"..\..\..\..\GPL\Qt\4.1.4\mkspecs\win32-g++" -o debug\test_3.o test_3.cpp
g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-subsystem,windows -o "debug\test_3.exe" debug\test_3.o -L"c:\GPL\Qt\4.1.4\lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4
C:\GPL\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot find -lqtmaind
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\test_3.exe] Error 1
mingw32-make[1]: Leaving directory `C:/Documents and Settings/revdokim.TLM/workspace/test_3'
mingw32-make: *** [debug-all] Error 2
Что за -lqtmaind не может найти ld.exe ?
Записан
Вудруф
Гость
Ошибки при компиляции с помощью MinGW
«
Ответ #12 :
Октябрь 02, 2006, 06:33 »
%QTDIR%/lib -> qtmaind.a
У тебя скомпилирована только релизная версия Qt?
Записан
Cyrax
Гость
Ошибки при компиляции с помощью MinGW
«
Ответ #13 :
Октябрь 05, 2006, 21:36 »
Да, была релизная.
Теперь уж на гиг распух...
Записан
Вудруф
Гость
Ошибки при компиляции с помощью MinGW
«
Ответ #14 :
Октябрь 06, 2006, 09:25 »
tmp удали...
добавлено спустя 1 минуту:
все tmp. У меня debug-and-release занимает 344 Мб. Examples только релизные.
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...