[QXmpp] Statyczne linkowanie i segmentation fault przy tworzeniu obiektu QXmppClient
Mam tu kilka problemów, a w tej bibliotece wciąż napotykam błędy, dlatego chciałbym już ogarnąć wszystko w jednym threadzie.
Mam projekt który wykorzystuje Qt do większości zadań, dlatego też do obsługi XMPP postanowiłem wybrać QXmpp. QXmpp jest bardzo funkcjonalne i proste w użyciu, tak więc z góry powiem, że nie chcę innej biblioteki niż ta.
Ogólnie z tą biblioteką od początku mam jakieś problemy, zaczynając od samej jej kompilacji (jak nie poda się do qmake'a opcji żeby generowało też dokumentację to nie ruszy make). Biblioteka domyślnie kompiluje się jako shared lib. Tak by nie trzeba było rozprowadzać aplikacji razem z plikami so/dll, kompilując wybrałem opcję staticlib. Wszystko się ładnie kompiluje, mam gotowy plik libqxmpp.a i headery gotowe do użycia. W moim programie include'uje co trzeba i chcę wykorzystać najbardziej bazową część biblioteki, czyli obiekt klasy QXmppClient. Efekt jest taki, że program po pierwsze wciąż wymaga ode mnie shared library, po drugie jak już mu podam ten shared lib to wypluwa Segmentation fault - na 100% ten sigsev wychodzi z tej biblioteki (zrobiłem nowy pusty projekt i ten sam efekt).
W pliku projektu dodane mam
DEFINES += QXMPP_STATIC
LIBS += -L/usr/local/lib/ -lqxmpp
Czy coś źle zrozumiałem z instrukcji i potrzebuję jeszcze czegoś? W każdym razie linkowanie dynamiczne/statyczne nie jest dla mnie najważniejsze, jak będzie tak będzie, to tylko moja preferencja.
Większym problemem jest ten segmentation fault, który występuje bez względu na to jak kompiluję bibliotekę i linkuję ją - zarówno statycznie jak i dynamicznie.
Do biblioteki załączone są przykładowe programy, które działają bez problemu, rzuciłem na nie okiem i zauważyłem, że kompilowane są one bezpośrednio z źródłami biblioteki. Tu żaden problem się nie pojawia. Finalnie jeśli nic innego nie zadziała tak też będę musiał zrobić.
Moje zestawienie:
- Qt 5 (nie wiem jak tu zobaczyć dokładną wersję, ale pobierałem ją z miesiąc temu)
- najświeższa kopia QXmpp (kompiluję BEZ jakichkolwiek dodatków jak np. speex)
- gcc 4.7.1
- Linux Slackware 14.1 64-bit (kernel 3.10.17)