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.io
and 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 docs
I 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_PATH
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:
Post Link Common cp: cannot stat '/opt/Qt5.15.2/lib/libicui18n.so*': No such file or directory make: *** [Makefile:2475: staging/QGroundControl] Error 1
The above errors are generated for three systems libraries
libicui18n.so libicudata.so libicuuc.so
These libraries exist on the system in the
/usr/lib/aarch64-linux-gnu/
folder. Utilities such aswhereis
finds 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.io
and 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 docs
I 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_PATH
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:
Post Link Common cp: cannot stat '/opt/Qt5.15.2/lib/libicui18n.so*': No such file or directory make: *** [Makefile:2475: staging/QGroundControl] Error 1
The above errors are generated for three systems libraries
libicui18n.so libicudata.so libicuuc.so
These libraries exist on the system in the
/usr/lib/aarch64-linux-gnu/
folder. Utilities such aswhereis
finds 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
qmake
binary.qmake
already knows where the libraries are located.