Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: neTpo от Март 19, 2008, 01:11



Название: MinGW-3.4.2.exe + qt-win-opensource-4.3.4-mingw.exe
Отправлено: neTpo от Март 19, 2008, 01:11
Проблема с установкой.

установил следующие файлы:
MinGW-3.4.2.exe
qt-win-opensource-4.3.4-mingw.exe

Запускаю ярлык:
Qt 4.3.4 (Build Debug Libraries)
командная сторка: %COMSPEC% /k "D:\Qt\bin\qtvars.bat compile_debug"
содержимое батника "qtvars.bat":

Цитировать
set QTDIR=D:\Qt
set PATH=D:\Qt\bin
set PATH=%PATH%;C:\MinGW\bin
set PATH=%PATH%;%SystemRoot%\System32
set QMAKESPEC=win32-g++

if not "%1"=="compile_debug" goto END
cd %QTDIR%
echo This will configure and compile qt in debug.
echo The release libraries will not be recompiled.
pause
configure -plugin-sql-sqlite -plugin-sql-odbc -qt-libpng -qt-libjpeg
cd %QTDIR%\src
qmake
mingw32-make debug
:END

компиляция прерывается такими строками:

Цитировать
In file included from ..\..\3rdparty\zlib\crc32.c:29:
..\..\3rdparty\zlib\/zutil.h:21:24: stddef.h: No such file or directory
..\..\3rdparty\zlib\/zutil.h:23:22: string.h: No such file or directory
..\..\3rdparty\zlib\/zutil.h:24:22: stdlib.h: No such file or directory
..\..\3rdparty\zlib\/zutil.h:38:23: errno.h: No such file or directory
..\..\3rdparty\zlib\crc32.c:36:24: limits.h: No such file or directory
mingw32-make[2]: *** [tmp/obj/release_shared/crc32.o] Error 1
mingw32-make[2]: Leaving directory `D:/Qt/src/tools/rcc'
mingw32-make[1]: *** [release] Error 2
mingw32-make[1]: Leaving directory `D:/Qt/src/tools/rcc'
mingw32-make: *** [debug-D__Qt_src_tools_rcc] Error 2


Название: Re: MinGW-3.4.2.exe + qt-win-opensource-4.3.4-mingw.exe
Отправлено: pastor от Март 19, 2008, 03:39
имх, нужно прописать пути к инклудам MinGW


Название: Re: MinGW-3.4.2.exe + qt-win-opensource-4.3.4-mingw.exe
Отправлено: Пантер от Март 19, 2008, 12:24
И воспользоваться поиском по форуму. ;)


Название: Re: MinGW-3.4.2.exe + qt-win-opensource-4.3.4-mingw.exe
Отправлено: neTpo от Март 19, 2008, 21:15
прописал инклуды
Цитировать
set QTDIR=D:\Qt
set PATH=D:\Qt\bin;d:\Qt\src\corelib
set PATH=%PATH%;C:\MinGW\bin;c:\MinGW\mingw32\bin;c:\MinGW\libexec\gcc\mingw32\3.4.2
set PATH=%PATH%;%SystemRoot%\System32
set INCLUDE=%INCLUDE%;C:\MinGW\lib\gcc\mingw32\3.4.2\include;c:\MinGW\include;d:\Qt\include
set INCLUDEPATH=%INCLUDE%
set LIB=%LIB%;c:\MinGW\lib;d:\Qt\lib
set QMAKESPEC=win32-g++

теперь останвливается на такой ошибке:

Цитировать
..\..\corelib\tools\qlocale.cpp: In function `char* qdtoa(double, int, int, int*
, int*, char**, char**)':
..\..\corelib\tools\qlocale.cpp:5925: error: `_clear87' undeclared (first use th
is function)
..\..\corelib\tools\qlocale.cpp:5925: error: (Each undeclared identifier is repo
rted only once for each function it appears in.)
..\..\corelib\tools\qlocale.cpp:5926: error: `_control87' undeclared (first use
this function)
mingw32-make[2]: *** [release/qlocale.o] Error 1
mingw32-make[2]: Leaving directory `D:/Qt/src/tools/moc'
mingw32-make[1]: *** [release] Error 2
mingw32-make[1]: Leaving directory `D:/Qt/src/tools/moc'
mingw32-make: *** [debug-D__Qt_src_tools_moc] Error 2
Для продолжения нажмите любую клавишу . . .


Название: Re: MinGW-3.4.2.exe + qt-win-opensource-4.3.4-mingw.exe
Отправлено: niXman от Апрель 19, 2010, 12:02
прописал инклуды
Цитировать
set QTDIR=D:\Qt
set PATH=D:\Qt\bin;d:\Qt\src\corelib
set PATH=%PATH%;C:\MinGW\bin;c:\MinGW\mingw32\bin;c:\MinGW\libexec\gcc\mingw32\3.4.2
set PATH=%PATH%;%SystemRoot%\System32
set INCLUDE=%INCLUDE%;C:\MinGW\lib\gcc\mingw32\3.4.2\include;c:\MinGW\include;d:\Qt\include
set INCLUDEPATH=%INCLUDE%
set LIB=%LIB%;c:\MinGW\lib;d:\Qt\lib
set QMAKESPEC=win32-g++

теперь останвливается на такой ошибке:

Цитировать
..\..\corelib\tools\qlocale.cpp: In function `char* qdtoa(double, int, int, int*
, int*, char**, char**)':
..\..\corelib\tools\qlocale.cpp:5925: error: `_clear87' undeclared (first use th
is function)
..\..\corelib\tools\qlocale.cpp:5925: error: (Each undeclared identifier is repo
rted only once for each function it appears in.)
..\..\corelib\tools\qlocale.cpp:5926: error: `_control87' undeclared (first use
this function)
mingw32-make[2]: *** [release/qlocale.o] Error 1
mingw32-make[2]: Leaving directory `D:/Qt/src/tools/moc'
mingw32-make[1]: *** [release] Error 2
mingw32-make[1]: Leaving directory `D:/Qt/src/tools/moc'
mingw32-make: *** [debug-D__Qt_src_tools_moc] Error 2
Для продолжения нажмите любую клавишу . . .

подниму тему.

собрал mingw-gcc-4.5.0.
получаю аналогичную ошибку.
варианты?
установить прежнюю версию компилятора - не предлагать :)


Название: Re: MinGW-3.4.2.exe + qt-win-opensource-4.3.4-mingw.exe
Отправлено: niXman от Апрель 19, 2010, 12:12
эксперимента ради, скопировал декларации этих функций из float.h
добавил к опциям линкера -lmsvcrt т.к. в ней нашел их.

результат тот же.
все это при сборке qmake. в самом начале.


Название: Re: MinGW-3.4.2.exe + qt-win-opensource-4.3.4-mingw.exe
Отправлено: kuzulis от Апрель 19, 2010, 12:25
Цитировать
собрал mingw-gcc-4.5.0.
а как собирал то?

ЗЫ: по-моему собирать компилятор нужно в несколько шагов/стадий .. геморно в общем... мож чо не так получилось?


Название: Re: MinGW-3.4.2.exe + qt-win-opensource-4.3.4-mingw.exe
Отправлено: niXman от Апрель 19, 2010, 13:15
в общем, в файле "qt/src/corelib/tools/qlocale.cpp" в строке 6523, есть такая функция:

Код
C++ (Qt)
Q_CORE_EXPORT char *qdtoa ( double d, int mode, int ndigits, int *decpt, int *sign, char **rve, char **resultp)
{}
 
в ней используются функции "_control87(), _clear87()". как я понял, они управляют поведением сопроцессора при ошибках.
ради эксперимента, я вытворил следующее:
Код
C
unsigned int _control87 (unsigned int unNew, unsigned int unMask) { return 0; };
unsigned int _clearfp (void) { return 0; };
#define _clear87 _clearfp
 
дабы скомпилить и слинковать qmake. получилось.

далее...
запустил сборку.
при сборке "corelib" получил следующее:
Цитировать
mingw32-make[2]: Entering directory `C:/Qt/qt/src/corelib'
C:/Qt/qt/bin/moc.exe -DQT_SHARED -DQT_THREAD_SUPPORT -DUNICODE -DQT_LARGEFILE_SU
PPORT -DQT_BUILD_CORE_LIB -DQT_NO_USING_NAMESPACE -DQT_MAKEDLL -DQT_ASCII_CAST_W
ARNINGS -DQT3_SUPPORT -DQT_MOC_COMPAT -D_USE_MATH_DEFINES -DHB_EXPORT=Q_CORE_EXP
ORT -DQT_DLL -I'../../include' -I'../../include/QtCore' -I'tmp/rcc/debug_shared'
 -I'tmp' -I'global' -I'../3rdparty/zlib' -I'../3rdparty/harfbuzz/src' -I'../3rdp
arty/md5' -I'../3rdparty/md4' -I'../../include/ActiveQt' -I'tmp/moc/debug_shared
' -I'../../mkspecs/win32-g++' -D__GNUC__ -DWIN32 animation/qabstractanimation.h
-o tmp/moc/debug_shared/moc_qabstractanimation.cpp
"test" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Ошибка в синтаксисе команды.

какие мысли?

не понятно, кто такой "test" :)


Название: Re: MinGW-3.4.2.exe + qt-win-opensource-4.3.4-mingw.exe
Отправлено: niXman от Апрель 19, 2010, 13:19
Цитировать
а как собирал то?
руками :)

Цитировать
по-моему собирать компилятор нужно в несколько шагов/стадий
угу. долго все это происходит. одно радует, что msys-make поддерживает распаралеливание сборки. в отличии от mingw32-make :)

Цитировать
геморно в общем
ага. три дня труда. но доволен как слон :)

Цитировать
мож чо не так получилось?
возможно.
но все мои проекты, в том числе и написанные преимущественно с использованием boost и нововведений c++0x(это основной аргумент из-за которого пришлось собирать mingw), компилятся и работают.
вот только линковать Qt-SDK не хочет. другой компилятор. что-то там не совместимо на уровне библиотек.