LINUX.ORG.RU

Есть ли какое-нибудь PPA с новым Qt для Bionic?

 , , , ,


1

2

Я использую самосборный Qt Creator прилинкованый к «prebuilt» Qt 5.11.0 (c qt.io). Qt Creator собираю системным GCC 7:

$ g++ --version
g++ (Ubuntu 7.3.0-16ubuntu3) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Qt, в свою очередь собран старшим GCC:

$ readelf -p .comment qmake  

String dump of section '.comment':
  [     0]  GCC: (GNU) 4.8.5 20150623 (Red Hat 4.8.5-28)
  [    2d]  GCC: (GNU) 5.3.1 20160406 (Red Hat 5.3.1-6)

Проблема с собранным Qt Creator такова, что получает SIGSEGV при добавлении нового файла в проект (prebuilt Qt Creator, ессесно не падает). Грешу на несовместимость ABI.

Когда-то раньше у меня была подобная проблема, решил самосборкой целого Qt. Однако сейчас как-то лень. Может есть какие-нибудь PPA с новым Qt (хотя бы 5.10) собранным под Ubuntu Bionic (18.04)?

★★★★★

Последнее исправление: KennyMinigun (всего исправлений: 1)

можно поставить Qt с офсайта и обновляться через штатный MaintenanceTool

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

Я так и делаю, только вот на офсайте Qt собран старшим компилятором, из-за чего есть несовместимость ABI (по крайней мере так думаю).

KennyMinigun ★★★★★
() автор топика

Поисковик сломался? Рекомендую searx.me - по 5.11 ничего вменяемого не обнаружил (посмотри повнимательнее, может найдешь чего), вторая строчка по запросу qt5.10 bionic ppa - https://launchpad.net/~sergej-morokin/ archive/ubuntu/qt-5.10.1 Работоспособосность неизвестна.

anonymous
()
Ответ на: комментарий от annulen

Хоть бы бэктрейс показал,

Та, я все хотел, да лень було. Сча запилю

Просто суть такова, что один и тот же код собранный на qt.io (древним GCC на RHEL) и на локалхосте GCC 7.3 работает по разному. Совпадєніє? Нє думаю.

KennyMinigun ★★★★★
() автор топика
Последнее исправление: KennyMinigun (всего исправлений: 1)
Ответ на: комментарий от KennyMinigun

GCC 7 с включенной оптимизацией может вызывать крэши в коде, который раньше работал, они стали злее эксплуатировать UB

annulen ★★★★★
()
Ответ на: комментарий от annulen

Так вот дело выглядит в бинарнике release:

Thread 1 "qtcreator" received signal SIGSEGV, Segmentation fault.                                                                                                                                        
0x00007fbb6d65c453 in ProjectExplorer::JsonWizard::openProjectForNode(ProjectExplorer::Node*) () from ~/Projects/qt-creator-build-4.7b6/lib/qtcreator/plugins/libProjectExplorer.so         
(gdb) bt                                                                                                                                                                                                 
#0  0x00007fbb6d65c453 in ProjectExplorer::JsonWizard::openProjectForNode(ProjectExplorer::Node*) () at ~/Projects/qt-creator-build-4.7b6/lib/qtcreator/plugins/libProjectExplorer.so       
#1  0x00007fbb6d661e65 in ProjectExplorer::JsonWizard::accept() () at ~/Projects/qt-creator-build-4.7b6/lib/qtcreator/plugins/libProjectExplorer.so
#2  0x00007fbb85f2d399 in QMetaObject::activate(QObject*, int, int, void**) (sender=sender@entry=0x55c7a3628470, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7ffc48b5e920) at kernel/qobject.cpp:3771
#3  0x00007fbb85f2dca7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x55c7a3628470, m=m@entry=0x7fbb8779d340 <QAbstractButton::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7ffc48b5e920) at kernel/qobject.cpp:3633
#4  0x00007fbb871d41f2 in QAbstractButton::clicked(bool) (this=this@entry=0x55c7a3628470, _t1=false) at .moc/moc_qabstractbutton.cpp:308
#5  0x00007fbb871d43f4 in QAbstractButtonPrivate::emitClicked() (this=0x55c7a2648e90) at widgets/qabstractbutton.cpp:414
#6  0x00007fbb871d5f8e in QAbstractButtonPrivate::click() (this=0x55c7a2648e90) at widgets/qabstractbutton.cpp:407
#7  0x00007fbb871d60e5 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) (this=0x55c7a3628470, e=0x7ffc48b5ed90) at widgets/qabstractbutton.cpp:1011
#8  0x00007fbb8711f4c8 in QWidget::event(QEvent*) (this=0x55c7a3628470, event=0x7ffc48b5ed90) at kernel/qwidget.cpp:9277
#9  0x00007fbb870e2dac in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55c7a3628470, e=0x7ffc48b5ed90) at kernel/qapplication.cpp:3713
#10 0x00007fbb870ea833 in QApplication::notify(QObject*, QEvent*) (this=<optimized out>, receiver=0x55c7a3628470, e=0x7ffc48b5ed90) at kernel/qapplication.cpp:3189
#11 0x00007fbb85f024e8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=receiver@entry=0x55c7a3628470, event=event@entry=0x7ffc48b5ed90) at kernel/qcoreapplication.cpp:1048
#12 0x00007fbb870e948f in QCoreApplication::sendEvent(QObject*, QEvent*) (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234
#13 0x00007fbb870e948f in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) (receiver=receiver@entry=0x55c7a3628470, event=event@entry=0x7ffc48b5ed90, alienWidget=alienWidget@entry=0x55c7a3628470, nativeWidget=0x55c7a363f5d0, buttonDown=buttonDown@entry=0x7fbb877c68d0 <qt_button_down>, lastMouseReceiver=..., spontaneous=true)
    at kernel/qapplication.cpp:2692
#14 0x00007fbb8713901d in QWidgetWindow::handleMouseEvent(QMouseEvent*) (this=this@entry=0x55c7a365b770, event=event@entry=0x7ffc48b5f180) at kernel/qwidgetwindow.cpp:659
#15 0x00007fbb8713b913 in QWidgetWindow::event(QEvent*) (this=0x55c7a365b770, event=0x7ffc48b5f180) at kernel/qwidgetwindow.cpp:280
#16 0x00007fbb870e2dac in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55c7a365b770, e=0x7ffc48b5f180) at kernel/qapplication.cpp:3713
#17 0x00007fbb870e9e57 in QApplication::notify(QObject*, QEvent*) (this=0x7ffc48b5f690, receiver=0x55c7a365b770, e=0x7ffc48b5f180) at kernel/qapplication.cpp:3472
#18 0x00007fbb85f024e8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=receiver@entry=0x55c7a365b770, event=event@entry=0x7ffc48b5f180) at kernel/qcoreapplication.cpp:1048
#19 0x00007fbb868c5e37 in QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) (event=0x7ffc48b5f180, receiver=0x55c7a365b770)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:237
#20 0x00007fbb868c5e37 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) (e=0x55c7a3b2d540) at kernel/qguiapplication.cpp:2070
#21 0x00007fbb868c7d35 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) (e=e@entry=0x55c7a3b2d540) at kernel/qguiapplication.cpp:1805
#22 0x00007fbb868a1b7b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=...) at kernel/qwindowsysteminterface.cpp:1028
#23 0x00007fbb7fb8bb8b in QPAEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55c79dbeb040, flags=...) at qeventdispatcher_glib.cpp:70
#24 0x00007fbb85f00e4a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffc48b5f3c0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:214
#25 0x00007fbb85f09850 in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1336
#26 0x000055c79c197c4d in main ()

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