• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Qt linux - przenoszenie skompilowanej wersji app na linuxa na którym nie mam bibliotek qt i css.

Object Storage Arubacloud
0 głosów
367 wizyt
pytanie zadane 22 maja 2015 w C i C++ przez slawekh666 Początkujący (410 p.)

Witam.

1. Próbuję przenieść app napisaną  w qt na linuxa na którym nie ma zainstalowanych bibliotek qt. Mimo że biblioteka libQt5Widgets.so.5 znajduje sie w katalogu z plikiem wykonywalnym wyrzuca: "error while loading shared libraries: libQt5Widgets.so.5: cannot open shared object file: No such file or directory". Mugł by ktoś podpowiedzieć jak się z tym uporać. App napisana jest w Qt Creatorze. Próbowałem zbudować qt według poradnike: http://doc.qt.io/qt-5/linux-deployment.html, ale u mnie ścieżki w qt wyglądają całkiem inaczej i nie mogę znaleść nawet pliku configure.

2. Próbuje dodać style do viewera, ale nie przycina mi jego zawartość do ramki, pewnie powodem jest kolejność bo ramka znajduje się pod grafiką z paintera. Styl tworzę w painterze po narysowaniu pełnego rysunku.
kod stylu:

ui->graphicsView->setStyleSheet("border: 3px solid gray; border-radius: 60px; background-color:#fff;");

 

3 odpowiedzi

0 głosów
odpowiedź 22 maja 2015 przez MrWeb Stary wyjadacz (10,200 p.)

Pytanie 1. Przenieś libsy z folderu z programem do ścieżki

/usr/local/lib
lub
/usr/lib

Powinno pomóc :)

 

komentarz 22 maja 2015 przez slawekh666 Początkujący (410 p.)
na czystym linuksie?

a nie da sie tak zlinkować żeby łapał z folderu?
komentarz 22 maja 2015 przez MrWeb Stary wyjadacz (10,200 p.)

Ah, no tak! Zapomniałem! Jest taki parametr w kompilatorach g++ który określa ścieżkę szukania bibliotek :) 

-L /path/to/program

Tu masz przykład użycia (patrz - moja odpowiedź)

https://forum.pasja-informatyki.pl/16447/sfml-na-linux-mint-w-code-blocks-wczoraj-dzialal-a-dzis-nie

komentarz 22 maja 2015 przez slawekh666 Początkujący (410 p.)
edycja 22 maja 2015 przez slawekh666

wyrzuca mi teraz:

main.cpp:(.text.startup+0x39): undefined reference to `QApplication::QApplication(int&, char**, int)'
main.cpp:(.text.startup+0x49): undefined reference to `Widget::Widget(QWidget*)'
main.cpp:(.text.startup+0x51): undefined reference to `QWidget::show()'
main.cpp:(.text.startup+0x56): undefined reference to `QApplication::exec()'
main.cpp:(.text.startup+0x62): undefined reference to `Widget::~Widget()'
main.cpp:(.text.startup+0x6a): undefined reference to `QApplication::~QApplication()'
main.cpp:(.text.startup+0x80): undefined reference to `QApplication::~QApplication()'
main.cpp:(.text.startup+0x94): undefined reference to `Widget::~Widget()'

dalej brakuje bibliotek? tylko jakich dołączyłem: libQt5Core.so.5 , gui, serialport, quick, widget, cały folder platforms

w terminalu wpisuję:

g++ -std=c++11 -L/home/pi/Dokumenty/QT/myapp -o "main" ./main.o

 

komentarz 22 maja 2015 przez MrWeb Stary wyjadacz (10,200 p.)
Narazie nie mam dostępu do ubuntu z Qt ale jak będę miał chwilę czasu to zobaczę co da się zrobić. Narazie mogę tylko powiedzieć, że błędy są na etapie linkera więc na 99% chodzi o biblioteki
komentarz 22 maja 2015 przez slawekh666 Początkujący (410 p.)

a i przy komedzie:

g++ -std=c++11 -c -o "main.o" ./main.cpp

wyrzuca:

In file included from ./main.cpp:1:0:
./widget.h:4:19: fatal error: QWidget: Nie ma takiego pliku ani katalogu
compilation terminated.

Mimo że tam jest. Nawet przy czystym projekcie wygenerowanym przez Qt Creator.

 

0 głosów
odpowiedź 28 maja 2015 przez slawekh666 Początkujący (410 p.)
Jak sprawdzić skąd aplikacja linkuje biblioteki pod linuxem? Albo jak ustawić w Qt Creatorze, żeby przy uruchamianiu app linkował biblioteki z folderu w którym jest jej plik wykonywalny?

Aktualnie w folderze mam wszystkie biblioteki które są wymienione po komendzie: "ldd myapp | grep libQt" ale i tak wyrzuca "nie znaleziono"
0 głosów
odpowiedź 28 maja 2015 przez slawekh666 Początkujący (410 p.)
edycja 28 maja 2015 przez slawekh666

Póki co próbuje odpalić przez skopiowanie bibliotek do folderu usr/lib, ale wyrzuca:

This application failed to start because it could not find or load the Qt platform plugin "xcb".

Reinstalling the application may fix this problem.
Przerwane

wynik ldd dla libqxcb.so:

	linux-gate.so.1 =>  (0xb76fe000)
	libX11-xcb.so.1 => /usr/lib/i386-linux-gnu/libX11-xcb.so.1 (0xb75b2000)
	libXi.so.6 => /usr/lib/i386-linux-gnu/libXi.so.6 (0xb75a3000)
	libSM.so.6 => /usr/lib/i386-linux-gnu/libSM.so.6 (0xb759a000)
	libICE.so.6 => /usr/lib/i386-linux-gnu/libICE.so.6 (0xb7581000)
	libdl.so.2 => /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0xb757d000)
	libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xb755a000)
	libfontconfig.so.1 => /usr/lib/i386-linux-gnu/libfontconfig.so.1 (0xb7524000)
	libfreetype.so.6 => /usr/lib/i386-linux-gnu/libfreetype.so.6 (0xb7487000)
	libQt5DBus.so.5 => /usr/lib/libQt5DBus.so.5 (0xb7400000)
	libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xb7303000)
	libXrender.so.1 => /usr/lib/i386-linux-gnu/libXrender.so.1 (0xb72f9000)
	libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xb71c1000)
	libQt5Gui.so.5 => /usr/lib/libQt5Gui.so.5 (0xb6bea000)
	libQt5Core.so.5 => /usr/lib/libQt5Core.so.5 (0xb66a6000)
	libGL.so.1 => /usr/lib/i386-linux-gnu/libGL.so.1 (0xb664c000)
	libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xb6633000)
	libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb6547000)
	libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xb6520000)
	libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xb63bc000)
	libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xb63aa000)
	libuuid.so.1 => /lib/i386-linux-gnu/libuuid.so.1 (0xb63a4000)
	/lib/ld-linux.so.2 (0xb76ff000)
	libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xb63a1000)
	libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xb639a000)
	libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb6381000)
	libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0xb6359000)
	libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb631b000)
	librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xb6312000)
	libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb62f4000)
	libicui18n.so.53 => /usr/lib/libicui18n.so.53 (0xb609d000)
	libicuuc.so.53 => /usr/lib/libicuuc.so.53 (0xb5f1e000)
	libgthread-2.0.so.0 => /usr/lib/i386-linux-gnu/libgthread-2.0.so.0 (0xb5f1b000)
	libglapi.so.0 => /usr/lib/i386-linux-gnu/libglapi.so.0 (0xb5f05000)
	libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xb5f01000)
	libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xb5efb000)
	libxcb-glx.so.0 => /usr/lib/i386-linux-gnu/libxcb-glx.so.0 (0xb5ee2000)
	libXxf86vm.so.1 => /usr/lib/i386-linux-gnu/libXxf86vm.so.1 (0xb5edc000)
	libdrm.so.2 => /usr/lib/i386-linux-gnu/libdrm.so.2 (0xb5ece000)
	libicudata.so.53 => /usr/lib/libicudata.so.53 (0xb4a44000)

 

Wie może ktoś co mu się nie podoba?

Podobne pytania

0 głosów
1 odpowiedź 343 wizyt
0 głosów
3 odpowiedzi 785 wizyt
0 głosów
0 odpowiedzi 396 wizyt

92,555 zapytań

141,404 odpowiedzi

319,560 komentarzy

61,941 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...