• 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
378 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ź 361 wizyt
0 głosów
3 odpowiedzi 823 wizyt
0 głosów
0 odpowiedzi 411 wizyt

92,669 zapytań

141,567 odpowiedzi

320,033 komentarzy

62,034 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

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!

...