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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Ошибка при сборки qt из исходников  (Прочитано 8353 раз)
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 часа как-то не очень...
может кто сталкивался?
Записан
Serr500
Гость
« Ответ #1 : Июль 26, 2012, 14:11 »

Цитировать
out of memory allocating 125660256 bytes
Памяти линкеру не хватает. Сколько памяти на машине? 256?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4746



Просмотр профиля WWW
« Ответ #2 : Июль 26, 2012, 14:20 »

сомневаюсь, что на машине с win 7 (x64) всего 256 мб памяти Улыбающийся скорее свободной столько было.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
invasion
Гость
« Ответ #3 : Июль 26, 2012, 14:22 »

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

так проблема только в памяти? или ещё что нибудь? память то я почищу...
Записан
Serr500
Гость
« Ответ #5 : Июль 26, 2012, 15:00 »

Судя по выводу линкера, ему не хватило памяти. Впрочем, может быть, ему не хватило не оперативной памяти, а дисковой.
Записан
sergey_ulyanov
Гость
« Ответ #6 : Июль 26, 2012, 20:06 »

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

попробовал ещё раз... ситуация аналогичная, память высвободил по максимуму, выключил всё что только можно, оставил только диспетчер задач и тупо мониторил память. в один прекрасный момент процесс ld.exe начал очень сильно есть память а именно 1700мб но при всём это на момент возникновения ошибки было свободно 800 мб... посоветуйте, что можно сделать? (в офф документации нигде не написано что ему нужно более 4гб озу  Шокированный)

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

-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
« Последнее редактирование: Июль 26, 2012, 22:50 от invasion » Записан
invasion
Гость
« Ответ #8 : Июль 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++ есть файл конфигураций...
Записан
sergey_ulyanov
Гость
« Ответ #9 : Июль 26, 2012, 23:43 »

gcc у вас 4.6.2-1
При сборке (QtGui наверное) линковщик выкидывает приведенное вами сообщение, даже при наличии достаточного количества оперативной памяти. Данная проблема решается установкой соответствующего QMAKESPEC (win32-g++-4.6) при конфигурации: ./configure -platform win32-g++-4.6
Записан
invasion
Гость
« Ответ #10 : Июль 27, 2012, 13:57 »

gcc у вас 4.6.2-1
При сборке (QtGui наверное) линковщик выкидывает приведенное вами сообщение, даже при наличии достаточного количества оперативной памяти. Данная проблема решается установкой соответствующего QMAKESPEC (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
и все равно такая же ошибка... Шокированный Непонимающий
Записан
Serr500
Гость
« Ответ #11 : Июль 27, 2012, 15:21 »

Mingw, датируется как 20012 04 26, в логах написано что beta
Возьмите версию посвежее. Или наоборот, старую но стабильную с сайта нокии - ftp://ftp.qt.nokia.com/misc/MinGW-gcc440_1.zip
Записан
invasion
Гость
« Ответ #12 : Август 31, 2012, 23:14 »

Лучше отписатья поздно чем никогда  Смеющийся . пост выше помог)
Записан
niXman
Гость
« Ответ #13 : Сентябрь 02, 2012, 21:03 »

Цитировать
ld.exe: out of memory allocating 132594520 bytes
стандартный баг.
говорит о том, что binutils`ы входящие в состав используемого MinGW собраны без опции '--large-address-aware'
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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