Strona 1 z 1
Jak kompilować w Qt4 ze zgodnością dla Qt3 (kompilacja statyczna)
: 04 lut 2011, 21:45
autor: Chmiela2121
Witam.
Napisałem program z użyciem bibliotek Qt4. Przy próbie uruchomienia go na komputerze z zainstalowanym Qt3, otrzymuję segmantation fault. Nie pomaga dopisanie do pliku projektu:
QT += qt3support
oraz inkludowanie do każdego z modułów biblioteki - Qt3Support.
Czy coś robię źle, albo czegoś niezbędnego nie robię w ogóle? Proszę o pomoc.
Odp: Qt3Support - jak to zastosować?
: 04 lut 2011, 22:20
autor: kklimonda
Qt3Support służy do ułatwienia migracji z Qt3 na Qt4 - program nadal wymaga Qt4 do uruchomienia.
Odp: Qt3Support - jak to zastosować?
: 04 lut 2011, 22:41
autor: Chmiela2121
To wiele wyjaśnia, dziękuję. A czy da się to jednak jakoś obejść, czy muszę wymagać od użytkownika programu bibliotek Qt4?
Odp: Jak kompilować w Qt4 ze zgodnością dla Qt3
: 05 lut 2011, 00:05
autor: kklimonda
Możesz kupić od Nokii komercyjną licencję, i linkować swój program statycznie z Qt,
Odp: Jak kompilować w Qt4 ze zgodnością dla Qt3
: 06 lut 2011, 15:58
autor: Razi
@kklimonda: nie jest wymagana komercyjna licencja, wystarczy samemu przekompilować z -static, ale trzeba wtedy program na GPL wydać.
A swoją drogą to to się nie opłaci, lepiej wydawać program w archiwum ze skryptem do uruchomienia i bibliotekami w folderze ./lib
Odp: Jak kompilować w Qt4 ze zgodnością dla Qt3
: 08 lut 2011, 22:45
autor: Chmiela2121
@Razi: Czy mógłbyś rozwinąć temat? Jak się do tego zabrać i czy to rozwiąże mój problem?
-------------
Poczytałem trochę o statycznym linkowaniu i to powinno rozwiązać mój problem, tym bardziej, że i tak miałem w planach udostępnienie kodu programu. Ale tutaj rodzi się moje kolejne pytanie. Czy faktycznie, by przekompilować ze -static trzeba najpierw zainstalować Qt w sposób statyczny? Po prawdzie to dopisałem do projektu: CONFIG += static, i rozmiar aplikacji nie uległ zmianie, więc prawdopodobnie trzeba. Ponadto wciąż jestem zainteresowany tym drugim sposobem - może się przydać na przyszłość
EDIT:
Udało mi się zainstalować Qt w sposób statyczny, jednak kiedy kompiluję program zasypywany jestem błędami
undefined reference.
Kod: Zaznacz cały
...
qlistview.cpp:(.text+0x883e): undefined reference to `QAccessible::isActive()'
qlistview.cpp:(.text+0x88fc): undefined reference to `QAccessible::updateAccessibility(QObject*, int, QAccessible::Event)'
qlistview.cpp:(.text+0x898c): undefined reference to `QAccessible::updateAccessibility(QObject*, int, QAccessible::Event)'
/home/mateusz/qt-static/lib/libQtGui.a(qlistview.o): In function `QListView::currentChanged(QModelIndex const&, QModelIndex const&)':
qlistview.cpp:(.text+0x8a31): undefined reference to `QAccessible::isActive()'
qlistview.cpp:(.text+0x8a7a): undefined reference to `QAccessible::updateAccessibility(QObject*, int, QAccessible::Event)'
/home/mateusz/qt-static/lib/libQtGui.a(qtableview.o): In function `QTableView::selectionChanged(QItemSelection const&, QItemSelection const&)':
qtableview.cpp:(.text+0x49e): undefined reference to `QAccessible::isActive()'
qtableview.cpp:(.text+0x559): undefined reference to `QAccessible::updateAccessibility(QObject*, int, QAccessible::Event)'
qtableview.cpp:(.text+0x5fd): undefined reference to `QAccessible::updateAccessibility(QObject*, int, QAccessible::Event)'
/home/mateusz/qt-static/lib/libQtGui.a(qtableview.o): In function `QTableView::currentChanged(QModelIndex const&, QModelIndex const&)':
qtableview.cpp:(.text+0x651): undefined reference to `QAccessible::isActive()'
qtableview.cpp:(.text+0x69f): undefined reference to `QAccessible::updateAccessibility(QObject*, int, QAccessible::Event)'
/home/mateusz/qt-static/lib/libQtGui.a(qtreeview.o): In function `QTreeView::selectionChanged(QItemSelection const&, QItemSelection const&)':
qtreeview.cpp:(.text+0x476e): undefined reference to `QAccessible::isActive()'
qtreeview.cpp:(.text+0x483b): undefined reference to `QAccessible::updateAccessibility(QObject*, int, QAccessible::Event)'
qtreeview.cpp:(.text+0x48da): undefined reference to `QAccessible::updateAccessibility(QObject*, int, QAccessible::Event)'
/home/mateusz/qt-static/lib/libQtGui.a(qtreeview.o): In function `QTreeView::currentChanged(QModelIndex const&, QModelIndex const&)':
qtreeview.cpp:(.text+0x4971): undefined reference to `QAccessible::isActive()'
qtreeview.cpp:(.text+0x4abe): undefined reference to `QAccessible::updateAccessibility(QObject*, int, QAccessible::Event)'
/home/mateusz/qt-static/lib/libQtGui.a(qgraphicsitem.o): In function `QGraphicsItem::updateMicroFocus()':
qgraphicsitem.cpp:(.text+0x4be2): undefined reference to `QAccessible::updateAccessibility(QObject*, int, QAccessible::Event)'
/home/mateusz/qt-static/lib/libQtGui.a(qwhatsthis.o): In function `QWhatsThisPrivate::~QWhatsThisPrivate()':
qwhatsthis.cpp:(.text+0x21e): undefined reference to `QAccessible::updateAccessibility(QObject*, int, QAccessible::Event)'
/home/mateusz/qt-static/lib/libQtGui.a(qwhatsthis.o): In function `QWhatsThisPrivate::~QWhatsThisPrivate()':
qwhatsthis.cpp:(.text+0x2a2): undefined reference to `QAccessible::updateAccessibility(QObject*, int, QAccessible::Event)'
/home/mateusz/qt-static/lib/libQtGui.a(qwhatsthis.o): In function `QWhatsThisPrivate::~QWhatsThisPrivate()':
qwhatsthis.cpp:(.text+0x322): undefined reference to `QAccessible::updateAccessibility(QObject*, int, QAccessible::Event)'
/home/mateusz/qt-static/lib/libQtGui.a(qwhatsthis.o):qwhatsthis.cpp:(.text+0x10b2): more undefined references to `QAccessible::updateAccessibility(QObject*, int, QAccessible::Event)' follow
...
Co jeszcze robię nie tak jak powinienem? Bardzo proszę o pomoc.