Qt and Shared Libs (libicui18n.so, libicudata.so, libicuuc.so)
-
With some significant effort, I was able to get Qt 5.15.2 built and installed on my Ubuntu Linux ARM based system following these abbreviated steps.
I downloaded Qt 5.15.2 source from
download.qt.ioand extracted it to a folder on my system.Then... after fixing numerous issues that I was able to resolve from various posts, I was able to successfully build and install the kit using the following:
mkdir build && cd build ../configure -debug -prefix /opt/Qt5.15.2 -opensource -nomake tests -skip webengine -qt-xcb -qt-xkbcommon make -j4 sudo make install make docsI then configured my environment variables as follows:
PATH=/opt/Qt5.15.2/bin:$PATH export LD_LIBRARY_PATH=/opt/Qt5.15.2/lib:$LD_LIBRARY_PATHThe resulting kit can then be added to QTCreator with no issues. My problem is that when building an application that needs to use the kit using qmake and make, I get errors such as this one:
Post Link Common cp: cannot stat '/opt/Qt5.15.2/lib/libicui18n.so*': No such file or directory make: *** [Makefile:2475: staging/QGroundControl] Error 1The above errors are generated for three systems libraries
libicui18n.so libicudata.so libicuuc.soThese libraries exist on the system in the
/usr/lib/aarch64-linux-gnu/folder. Utilities such aswhereisfinds them with no problems. Looking at the error message, the build wants to find them in the Qt install folder rather than the system lib folder. I tried adding the system lib folder toLD_LIBRARY_PATH, but the errors don't go away. The only way I could fix this was to create symlinks from the three system libraries to the/opt/Qt5.15.2/lib/folder where Qt is installed. After that, the compile of QGroundControl worked fine and runs fine. I don't think this is a QGroundControl problem.My question is why does the build want to find these libraries in the Qt install folder? Is there a way to fix this without creating the symlinks?
-
With some significant effort, I was able to get Qt 5.15.2 built and installed on my Ubuntu Linux ARM based system following these abbreviated steps.
I downloaded Qt 5.15.2 source from
download.qt.ioand extracted it to a folder on my system.Then... after fixing numerous issues that I was able to resolve from various posts, I was able to successfully build and install the kit using the following:
mkdir build && cd build ../configure -debug -prefix /opt/Qt5.15.2 -opensource -nomake tests -skip webengine -qt-xcb -qt-xkbcommon make -j4 sudo make install make docsI then configured my environment variables as follows:
PATH=/opt/Qt5.15.2/bin:$PATH export LD_LIBRARY_PATH=/opt/Qt5.15.2/lib:$LD_LIBRARY_PATHThe resulting kit can then be added to QTCreator with no issues. My problem is that when building an application that needs to use the kit using qmake and make, I get errors such as this one:
Post Link Common cp: cannot stat '/opt/Qt5.15.2/lib/libicui18n.so*': No such file or directory make: *** [Makefile:2475: staging/QGroundControl] Error 1The above errors are generated for three systems libraries
libicui18n.so libicudata.so libicuuc.soThese libraries exist on the system in the
/usr/lib/aarch64-linux-gnu/folder. Utilities such aswhereisfinds them with no problems. Looking at the error message, the build wants to find them in the Qt install folder rather than the system lib folder. I tried adding the system lib folder toLD_LIBRARY_PATH, but the errors don't go away. The only way I could fix this was to create symlinks from the three system libraries to the/opt/Qt5.15.2/lib/folder where Qt is installed. After that, the compile of QGroundControl worked fine and runs fine. I don't think this is a QGroundControl problem.My question is why does the build want to find these libraries in the Qt install folder? Is there a way to fix this without creating the symlinks?
@Cryptik said in Qt and Shared Libs (libicui18n.so, libicudata.so, libicuuc.so):
The resulting kit can then be added to QTCreator with no issues. My problem is that when building an application that needs to use the kit using qmake and make, I get errors such as this one:
Don't modify the system environment! Instead where you configure the kit in Qt creator add a Qt version and point it to the correct
qmakebinary.qmakealready knows where the libraries are located.