Captură de ecran a aplicației mele
Am scris o aplicație (creator de lansare ca Linux Mint) în Qt 5.15.2 versiune. Am terminat dezvoltarea și totul a fost ok.
Apoi, am vrut să verific dacă funcționează la orice computer fără Qt instalat.
Pentru asta, am verificat dependenţă a fișierului aplicației de pe computerul meu (Ubuntu 20.04 LTS) cu ldd
comandă ca mai jos
ldd LauncherCreator
rezultat:
linux-vdso.so.1 (0x00007ffe2c7a9000)
libQt5Widgets.so.5 => /opt/Qt/5.15.2/gcc_64/lib/libQt5Widgets.so.5 (0x00007f2d1eae1000)
libQt5Gui.so.5 => /opt/Qt/5.15.2/gcc_64/lib/libQt5Gui.so.5 (0x00007f2d1e1b0000)
libQt5Core.so.5 => /opt/Qt/5.15.2/gcc_64/lib/libQt5Core.so.5 (0x00007f2d1d9ba000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f2d1d7c6000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f2d1d7ab000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2d1d5b9000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f2d1d594000)
libGL.so.1 => /lib/x86_64-linux-gnu/libGL.so.1 (0x00007f2d1d50c000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f2d1d3bd000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f2d1d3a1000)
libicui18n.so.56 => /opt/Qt/5.15.2/gcc_64/lib/libicui18n.so.56 (0x00007f2d1cf08000)
libicuuc.so.56 => /opt/Qt/5.15.2/gcc_64/lib/libicuuc.so.56 (0x00007f2d1cb50000)
libicudata.so.56 => /opt/Qt/5.15.2/gcc_64/lib/libicudata.so.56 (0x00007f2d1b16b000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f2d1b165000)
libgthread-2.0.so.0 => /lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007f2d1b160000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f2d1b037000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2d1f35c000)
libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007f2d1af7f000)
libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007f2d1af49000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f2d1aed6000)
libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f2d1ad99000)
libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f2d1ad6f000)
libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f2d1ad69000)
libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f2d1ad5f000)
libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f2d1ad45000)
Pentru a rezolva această problemă, am copiat doar bibliotecile care au apărut mai sus legate de Qt și am lipit într-un folder nou numit lib.
Am scris un script de instalare pentru alte computere pentru a descărca bibliotecile necesare și a instala corect. (Poate că adevărata problemă este aici. Atenție la PASUL 4)
#!/bin/bash
sudo echo -----------------------------
# instalați libGL
ecou ------------------------------
echo „PASUL 1: instalați libGL”
ecou
sudo apt install libgl1-mesa-dev -y
# creați folderul aplicației
ecou ------------------------------
echo „PASUL 2: creați folderul aplicației”
ecou
cd /opt/
sudo rm -r LauncherCreator
sudo mkdir LauncherCreator
cd LauncherCreator
sudo mkdir lib
# intrați în folderul temporar
cd ~/Desktop/temp_LauncherCreator
# schimbați modul în executabil
chmod +x ~/Desktop/temp_LauncherCreator/BUILD/LauncherCreator
chmod +x ~/Desktop/temp_LauncherCreator/uninstall_LauncherCreator.sh
# copiați fișierele în folderul aplicației
ecou ------------------------------
echo „PASUL 3: dosarul aplicației de copiere a fișierelor”
ecou
sudo cp ~/Desktop/temp_LauncherCreator/BUILD/LauncherCreator /opt/LauncherCreator
sudo cp ~/Desktop/temp_LauncherCreator/LauncherCreator/rocket.ico /opt/LauncherCreator
sudo cp ~/Desktop/temp_LauncherCreator/currentVersion /opt/LauncherCreator
sudo cp ~/Desktop/temp_LauncherCreator/uninstall_LauncherCreator.sh /opt/LauncherCreator
sudo cp ~/Desktop/temp_LauncherCreator/lib/* /opt/LauncherCreator/lib/
# creați linkuri
ecou ------------------------------
echo „PASUL 4: creați linkuri pentru lib”
ecou
cd /opt/LauncherCreator/lib
sudo ln -s libicudata.so.56.1 libicudata.so.56
sudo ln -s libicudata.so.56 libicudata.so
sudo ln -s libicui18n.so.56.1 libicui18n.so.56
sudo ln -s libicui18n.so.56 libicui18n.so
sudo ln -s libicuuc.so.56.1 libicuuc.so.56
sudo ln -s libicuuc.so.56 libicuuc.so
sudo ln -s libQt5Core.so.5.15.2 libQt5Core.so.5.15
sudo ln -s libQt5Core.so.5.15 libQt5Core.so.5
sudo ln -s libQt5Core.so.5 libQt5Core.so
sudo ln -s libQt5Gui.so.5.15.2 libQt5Gui.so.5.15
sudo ln -s libQt5Gui.so.5.15 libQt5Gui.so.5
sudo ln -s libQt5Gui.so.5 libQt5Gui.so
sudo ln -s libQt5Widgets.so.5.15.2 libQt5Widgets.so.5.15
sudo ln -s libQt5Widgets.so.5.15 libQt5Widgets.so.5
sudo ln -s libQt5Widgets.so.5 libQt5Widgets.so
# copiați lansatorul în /usr/share/applications/
ecou ------------------------------
echo „PASUL 5: lansatorul de copiere”
ecou
chmod +x ~/Desktop/temp_LauncherCreator/Launcher_Generator.desktop
sudo cp ~/Desktop/temp_LauncherCreator/Launcher_Generator.desktop /usr/share/applications/
# eliminați folderul temporar
ecou ------------------------------
echo „PASUL 6: eliminați folderul temporar”
ecou
sudo rm -r ~/Desktop/temp_LauncherCreator
# actualizați aplicațiile
ecou ------------------------------
echo „PASUL 7: actualizați aplicațiile”
ecou
sudo apt install update -y
####
ecou
ecou „OK”
ecou
ecou '-----------------------------'
ecou „Bunyamin TAMAR”
echo „linkedin.com/in/bunyamintamar”
ecou „decembrie 2021”
ecou '-----------------------------'
ecou
somn 5
/opt/LauncherCreator/LauncherCreator
Ieșire
Acesta este al meu pro fişier:
QT += core gui
higherThan(QT_MAJOR_VERSION, 4): widget-uri QT +=
CONFIG += c++11
SURSE += $$fișiere("*.cpp", false)
HEADERS += $$fișiere("*.h", false)
FORMULE += $$fișiere("*.ui", false)
RESURSE += $$fișiere("*.qrc", false)
Această aplicație funcționează perfect în computerul meu cu Qt 5.15. Dar, la celălalt computer (Ubuntu 20.04 LTS), nu merge.
Cum pot rezolva această problemă?
De asemenea, puteți vedea aceste fișiere pe contul meu GitHub. Dacă rezolv această problemă, voi distribui această aplicație pe blogul meu.
(numai numele aplicației este diferit)