LINUX.ORG.RU

[Qt]Не компилируется

 


0

0

Значит мне нужно перекомпилить qt4.
Перекомпилирую я его на сиде, и новом ядре (2.6.28, компиленном).
До этого я его компилил на ленни и ядре 2.6.26, все было нормально.
Сделал make clean, отконфигурил.
Дальше пошла компиляция, и вылезла такая ошибка

....
g++ -c -include .pch/debug-shared/QtCore -pipe -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -fPIC -DQT_SHARED -DQT_BUILD_CORE_LIB -DQT_NO_USING_NAMESPACE -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -DQT_MOC_COMPAT -DHB_EXPORT=Q_CORE_EXPORT -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../mkspecs/linux-g++ -I. -I../../include -I../../include/QtCore -I.rcc/debug-shared -Iglobal -I../3rdparty/harfbuzz/src -I.moc/debug-shared -I/home/kde-devel/kde/src/KDE/qt-copy/src/corelib/.uic/debug-shared -o .obj/debug-shared/qsharedmemory_unix.o kernel/qsharedmemory_unix.cpp
*** glibc detected *** /usr/lib/gcc/i486-linux-gnu/4.3.3/cc1plus: malloc(): memory corruption: 0x08cca070 ***
======= Backtrace: =========
/lib/i686/cmov/libc.so.6[0x40137576]
/lib/i686/cmov/libc.so.6(__libc_malloc+0x95)[0x40138cd5]
/lib/i686/cmov/libc.so.6[0x400eea57]
/lib/i686/cmov/libc.so.6[0x400ecc2c]
/lib/i686/cmov/libc.so.6[0x400ec5f1]
/lib/i686/cmov/libc.so.6(dcgettext+0x43)[0x400eb353]
/lib/i686/cmov/libc.so.6(strsignal+0x129)[0x4013d1b9]
/usr/lib/gcc/i486-linux-gnu/4.3.3/cc1plus[0x82e9572]
======= Memory map: ========
08048000-0876f000 r-xp 00000000 08:06 133019 /usr/lib/gcc/i486-linux-gnu/4.3/cc1plus
0876f000-087d6000 rw-p 00726000 08:06 133019 /usr/lib/gcc/i486-linux-gnu/4.3/cc1plus
087d6000-08827000 rw-p 087d6000 00:00 0
08c40000-08cec000 rw-p 08c40000 00:00 0 [heap]
40000000-4001c000 r-xp 00000000 08:07 139434 /lib/ld-2.9.so
4001c000-4001d000 r--p 0001b000 08:07 139434 /lib/ld-2.9.so
4001d000-4001e000 rw-p 0001c000 08:07 139434 /lib/ld-2.9.so
4001e000-4001f000 r-xp 4001e000 00:00 0 [vdso]
4001f000-40021000 rw-p 4001f000 00:00 0
40021000-40022000 r--p 00267000 08:06 104489 /usr/lib/locale/locale-archive
40022000-40029000 r--s 00000000 08:06 8 /usr/lib/gconv/gconv-modules.cache
40029000-4003d000 rw-p 40029000 00:00 0
40042000-40081000 r-xp 00000000 08:06 21668 /usr/lib/libmpfr.so.1.1.1
40081000-40082000 rw-p 0003e000 08:06 21668 /usr/lib/libmpfr.so.1.1.1
40082000-400c4000 r-xp 00000000 08:06 21664 /usr/lib/libgmp.so.3.4.2
400c4000-400c5000 rw-p 00042000 08:06 21664 /usr/lib/libgmp.so.3.4.2
400c5000-400c6000 rw-p 400c5000 00:00 0
400c6000-4021e000 r-xp 00000000 08:07 564161 /lib/i686/cmov/libc-2.9.so
4021e000-4021f000 ---p 00158000 08:07 564161 /lib/i686/cmov/libc-2.9.so
4021f000-40221000 r--p 00158000 08:07 564161 /lib/i686/cmov/libc-2.9.so
40221000-40222000 rw-p 0015a000 08:07 564161 /lib/i686/cmov/libc-2.9.so
40222000-40226000 rw-p 40222000 00:00 0
40226000-40426000 r--p 00000000 08:06 104489 /usr/lib/locale/locale-archive
40426000-4050f000 r--p 00141000 08:06 104489 /usr/lib/locale/locale-archive
4050f000-405ae000 r--p 00000000 08:06 239523 /usr/share/locale/ru/LC_MESSAGES/gcc-4.3.mo
405ae000-40c8e000 rw-p 405ae000 00:00 0
40caf000-40cd9000 r-xp 00000000 08:07 139290 /lib/libgcc_s.so.1
40cd9000-40cda000 rw-p 00029000 08:07 139290 /lib/libgcc_s.so.1
40d00000-40d21000 rw-p 40d00000 00:00 0
40d21000-40e00000 ---p 40d21000 00:00 0
60000000-60fb3000 rw-p 00052000 08:09 672028 /home/kde-devel/kde/src/KDE/qt-copy/src/corelib/.pch/debug-shared/QtCore.gch/c+ +
bfbd1000-bfbe6000 rw-p bffeb000 00:00 0 [stack]
g++: Внутренняя ошибка: Ошибка сегментирования (программа cc1plus)
Пожалуйста, пришлите полный отчёт об ошибке.
См. инструкции на <file:///usr/share/doc/gcc-4.3/README.Bugs>.
make[1]: *** [.obj/debug-shared/qsharedmemory_unix.o] Ошибка 1
make[1]: *** Ожидание завершения заданий...
make[1]: Leaving directory `/home/kde-devel/kde/src/KDE/qt-copy/src/corelib'
make: *** [sub-corelib-make_default-ordered] Ошибка 2

при повторной компиляции, уже так

....
/home/kde-devel/kde/src/KDE/qt-copy/src/corelib/kernel/qsharedmemory.cpp:194: undefined reference to `QSharedMemoryPrivate::cleanHandle()'
.obj/debug-shared/qsharedmemory.o: In function `QSharedMemory':
/home/kde-devel/kde/src/KDE/qt-copy/src/corelib/kernel/qsharedmemory.cpp:158: undefined reference to `QSharedMemoryPrivate::QSharedMemoryPrivate()'
/home/kde-devel/kde/src/KDE/qt-copy/src/corelib/kernel/qsharedmemory.cpp:158: undefined reference to `QSharedMemoryPrivate::QSharedMemoryPrivate()'
/home/kde-devel/kde/src/KDE/qt-copy/src/corelib/kernel/qsharedmemory.cpp:146: undefined reference to `QSharedMemoryPrivate::QSharedMemoryPrivate()'
/home/kde-devel/kde/src/KDE/qt-copy/src/corelib/kernel/qsharedmemory.cpp:146: undefined reference to `QSharedMemoryPrivate::QSharedMemoryPrivate()'
.obj/debug-shared/qsystemsemaphore_unix.o: In function `QSystemSemaphorePrivate::handle(QSystemSemaphore::AccessMode)':
/home/kde-devel/kde/src/KDE/qt-copy/src/corelib/kernel/qsystemsemaphore_unix.cp p:129: undefined reference to `QSharedMemoryPrivate::createUnixKeyFile(QString const&'
collect2: выполнение ld завершилось с кодом возврата 1
make[1]: *** [../../lib/libQtCore.so.4.5.1] Ошибка 1
make[1]: Leaving directory `/home/kde-devel/kde/src/KDE/qt-copy/src/corelib'
make: *** [sub-corelib-make_default-ordered] Ошибка 2

В чем здесь проблема?..


в дезоксирибонуклеиновой кислоте (ДНК)

EmStudio
()

посмотри достаточно ли места на диске и памяти

lester ★★★★
()

qt-copy/src/corelib/kernel/qsharedmemory.cpp

Вот тут посмотри код, может, там где-то ошибка прокралась, что QSharedMemoryPrivate не может скомпилироваться.
Мне иногда приходится удалять косяки из игрушек, скачанных с KDE-шного ftp-шника, где иногда нет-нет, да и проскользнёт какой-нибудь лишний знак в коде вроде запятой, из-за которой он не компилится.

Terrens
()

давненько я не банил клоунов, не читающих правил и постящих в моих talks'ах... будешь первым в этом месяце :)

Andru ★★★★
()

С местом на диске и в памяти все впорядке.
В коде ошибок быть не должно, я эти же сырцы недавно компилировал без проблем.

JN
() автор топика

проверьте все же железки, память, шлейф диска,

запакуйте - распакуйте несколько архивов

вторая попытка компиляции, делали make clean ?
или так после первой как пошло?


Sylvia ★★★★★
()

Вылетание gcc в разных местах -- классический пример проблем с памятью. Попробуй memtest86 погонять сутки.

kemm
()
Ответ на: комментарий от Sylvia

Все проверил, даже от пыли почистил.
Сдалал make clean, теперь ошибка в разных местах начала появлятся.
Вобщем кое-как докомпилил, но эта ошибка в разных местах...
Возможно она из-за того, что я кривовато до ленни обновился, еще много либ осталось не обновленными, ибо зависимости мешают.
Но все самое главное у меня обновлено.
Да ну и ладно, я и так на слаку переходить собираюсь.

JN
() автор топика
Ответ на: комментарий от kemm

memtest86 гонял, только пол часа.
Никаких ошибок нету.
А почему так долго гонять нужно?.. =)

JN
() автор топика
Ответ на: комментарий от JN

> А почему так долго гонять нужно?.. =)

Как показывает практика, иногда коротким прогоном выявить косяк не удаётся. В чём причина -- я ХЗ, может, от температуры зависит или ещё от чего.

Пару раз с похожим сталкивался при make world на фре-- таки действительно была битая память.

kemm
()
Ответ на: комментарий от JN

не помню точно, но вроде в qt4 make clean НЕ очищает текущий конфиг. перед повторным конфигурированием надо запускать make с какой-то другой опцией (cleanconfig вроде, но точно не помню)

xydo ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.