Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: invasion от Июль 26, 2012, 13:47



Название: Ошибка при сборки qt из исходников
Отправлено: invasion от Июль 26, 2012, 13:47
Здравствуйте!
Добрались руки собрать qt из исходников, всё было бы хорошо но почти в самом конце сборки вылетает ошибка:

c:/mingw/bin/../lib/gcc/mingw32/4.6.1/../../../../mingw32/bin/ld.exe: out
of mem
ory allocating 125660256 bytes
collect2: ld returned 1 exit status
mingw32-make[2]: *** [..\..\lib\QtGuid4.dll] Error 1
mingw32-make[2]: Leaving directory
`C:\QT\4.8.2\src\gui'
mingw32-make[1]: *** [debug-all] Error 2
mingw32-make[1]: Leaving directory

конфигурация qt: configure  -debug-and-release -I C:\OpenSSL-Win32\include -L C:\OpenSSL-Win32
ос win 7 (x64)
сборку запускал с помощью mingw32-make (никаких дополнительных ключей не указывал).
нагуглив нашёл некоторые советы, но каждый говорит своё, а на каждый эксперимент отдавать по 2 часа как-то не очень...
может кто сталкивался?


Название: Re: Ошибка при сборки qt из исходников
Отправлено: Serr500 от Июль 26, 2012, 14:11
Цитировать
out of memory allocating 125660256 bytes
Памяти линкеру не хватает. Сколько памяти на машине? 256?


Название: Re: Ошибка при сборки qt из исходников
Отправлено: kambala от Июль 26, 2012, 14:20
сомневаюсь, что на машине с win 7 (x64) всего 256 мб памяти :) скорее свободной столько было.


Название: Re: Ошибка при сборки qt из исходников
Отправлено: invasion от Июль 26, 2012, 14:22
Цитировать
out of memory allocating 125660256 bytes
Памяти линкеру не хватает. Сколько памяти на машине? 256?
на машине 4гб, свободной было около 1.5 - 2 гб


Название: Re: Ошибка при сборки qt из исходников
Отправлено: invasion от Июль 26, 2012, 14:30
так проблема только в памяти? или ещё что нибудь? память то я почищу...


Название: Re: Ошибка при сборки qt из исходников
Отправлено: Serr500 от Июль 26, 2012, 15:00
Судя по выводу линкера, ему не хватило памяти. Впрочем, может быть, ему не хватило не оперативной памяти, а дисковой.


Название: Re: Ошибка при сборки qt из исходников
Отправлено: sergey_ulyanov от Июль 26, 2012, 20:06
Какая версия qt, mingw-gcc?
Вообще вопрос довольно известнен. В интернете полно обсуждений.
Если gcc 4.6+, решением данной проблемы будет выбор mkspec win32-g++-4.6 (там добавлен флаг -fno-keep-inline-dllexport).


Название: Re: Ошибка при сборки qt из исходников
Отправлено: invasion от Июль 26, 2012, 22:45
попробовал ещё раз... ситуация аналогичная, память высвободил по максимуму, выключил всё что только можно, оставил только диспетчер задач и тупо мониторил память. в один прекрасный момент процесс ld.exe начал очень сильно есть память а именно 1700мб но при всём это на момент возникновения ошибки было свободно 800 мб... посоветуйте, что можно сделать? (в офф документации нигде не написано что ему нужно более 4гб озу  :o)

ещё раз код ошибки:

-DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2
g++ -mthreads -shared -Wl,--out-implib,c:\QT\4.8.2\lib\libQtGuid4.a -o ..\..\lib
\QtGuid4.dll object_script.QtGuid.Debug  -L"c:\QT\4.8.2\lib" -L"c:\QT\4.8.2\lib"
 -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lws2_32 -lole32 -luui
d -luser32 -ladvapi32 tmp\obj\debug_shared\QtGuid_resource_res.o -LC:\OpenSSL-Wi
n32 -lmsimg32 -lshell32 -lQtCored4

c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: out of mem
ory allocating 132594520 bytes
collect2: выполнение ld завершилось с кодом возврата 1
mingw32-make[2]: *** [..\..\lib\QtGuid4.dll] Error 1
mingw32-make[2]: Leaving directory `C:/QT/4.8.2/src/gui'
mingw32-make[1]: *** [debug-all] Error 2
mingw32-make[1]: Leaving directory `C:/QT/4.8.2/src/gui'
mingw32-make: *** [sub-gui-make_default-ordered] Error 2


Название: Re: Ошибка при сборки qt из исходников
Отправлено: invasion от Июль 26, 2012, 23:28
Какая версия qt, mingw-gcc?
Вообще вопрос довольно известнен. В интернете полно обсуждений.
Если gcc 4.6+, решением данной проблемы будет выбор mkspec win32-g++-4.6 (там добавлен флаг -fno-keep-inline-dllexport).

Если честно я не знаю какая версия Mingw, датируется как 20012 04 26, в логах написано что beta, версия qt 4.8.2.
Можно поподробнее про выбор mkspec win32-g++-4.6 ? я знаю в mkspec\win32-g++ есть файл конфигураций...


Название: Re: Ошибка при сборки qt из исходников
Отправлено: sergey_ulyanov от Июль 26, 2012, 23:43
gcc у вас 4.6.2-1
При сборке (QtGui наверное) линковщик выкидывает приведенное вами сообщение, даже при наличии достаточного количества оперативной памяти. Данная проблема решается установкой соответствующего QMAKESPEC (win32-g++-4.6 (http://qt.gitorious.org/qt/qt/trees/4.8/mkspecs/win32-g++-4.6)) при конфигурации: ./configure -platform win32-g++-4.6


Название: Re: Ошибка при сборки qt из исходников
Отправлено: invasion от Июль 27, 2012, 13:57
gcc у вас 4.6.2-1
При сборке (QtGui наверное) линковщик выкидывает приведенное вами сообщение, даже при наличии достаточного количества оперативной памяти. Данная проблема решается установкой соответствующего QMAKESPEC (win32-g++-4.6 (http://qt.gitorious.org/qt/qt/trees/4.8/mkspecs/win32-g++-4.6)) при конфигурации: ./configure -platform win32-g++-4.6
сделал вот так: configure  -platform win32-g++-4.6 -debug-and-release -I C:\OpenSSL-Win32\include -L C:\OpenSSL-Win32
и все равно такая же ошибка... :o ???


Название: Re: Ошибка при сборки qt из исходников
Отправлено: Serr500 от Июль 27, 2012, 15:21
Mingw, датируется как 20012 04 26, в логах написано что beta
Возьмите версию посвежее. Или наоборот, старую но стабильную с сайта нокии - ftp://ftp.qt.nokia.com/misc/MinGW-gcc440_1.zip (http://ftp://ftp.qt.nokia.com/misc/MinGW-gcc440_1.zip)


Название: Re: Ошибка при сборки qt из исходников
Отправлено: invasion от Август 31, 2012, 23:14
Лучше отписатья поздно чем никогда  ;D . пост выше помог)


Название: Re: Ошибка при сборки qt из исходников
Отправлено: niXman от Сентябрь 02, 2012, 21:03
Цитировать
ld.exe: out of memory allocating 132594520 bytes
стандартный баг.
говорит о том, что binutils`ы входящие в состав используемого MinGW собраны без опции '--large-address-aware'