Jak kompilować w Qt4 ze zgodnością dla Qt3 (kompilacja statyczna)

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Chmiela2121
Sędziwy Jeż
Sędziwy Jeż
Posty: 51
Rejestracja: 10 sie 2007, 15:23
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Jak kompilować w Qt4 ze zgodnością dla Qt3 (kompilacja statyczna)

Post 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.
Zapraszam serdecznie - www.mblog.boo.pl
kklimonda
Zakręcona Traszka
Zakręcona Traszka
Posty: 585
Rejestracja: 20 kwie 2008, 04:21
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME

Odp: Qt3Support - jak to zastosować?

Post autor: kklimonda »

Qt3Support służy do ułatwienia migracji z Qt3 na Qt4 - program nadal wymaga Qt4 do uruchomienia.
Chmiela2121
Sędziwy Jeż
Sędziwy Jeż
Posty: 51
Rejestracja: 10 sie 2007, 15:23
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Qt3Support - jak to zastosować?

Post 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?
Zapraszam serdecznie - www.mblog.boo.pl
kklimonda
Zakręcona Traszka
Zakręcona Traszka
Posty: 585
Rejestracja: 20 kwie 2008, 04:21
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME

Odp: Jak kompilować w Qt4 ze zgodnością dla Qt3

Post autor: kklimonda »

Możesz kupić od Nokii komercyjną licencję, i linkować swój program statycznie z Qt,
Razi
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 150
Rejestracja: 20 paź 2007, 16:23
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: KDE Plasma
Kontakt:

Odp: Jak kompilować w Qt4 ze zgodnością dla Qt3

Post 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
Chmiela2121
Sędziwy Jeż
Sędziwy Jeż
Posty: 51
Rejestracja: 10 sie 2007, 15:23
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Jak kompilować w Qt4 ze zgodnością dla Qt3

Post 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.
Zapraszam serdecznie - www.mblog.boo.pl
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 6 gości