Difference between revisions of "Qt6 Interface"
(added build and run requirements) |
(Clarified text, warn about non-standard library installs.) |
||
Line 14: | Line 14: | ||
==Troubleshooting on compiling on Linux== | ==Troubleshooting on compiling on Linux== | ||
− | If you don't download libQt6Pas library, FPC will give the error on compiling your Qt6 app, something about "cannot link to library Qt6Pas". This means it cannot find the "libQt6Pas.so" file. | + | If you don't download libQt6Pas library, FPC will give the error on compiling your Qt6 app, something about "cannot link to library Qt6Pas". This means it cannot find the "libQt6Pas.so" file. By far the best approach is to either build the library yourself and install it in the proper place or download and install the pre-built ones mentioned above. |
− | + | Putting libraries in non standard places and trying to point to them is never a good idea on Unix system. However, you could download the tar.gz file from Github, untar and put the library and two symlinks, "libQt6Pas.so" and "libQt6Pas.so.6.2"in the folder of "fpc" binary. | |
− | Then FPC must | + | Then FPC must get past the libQt6Pas step, but it can fail further on if you have not installed the general Qt6 libraries mentioned above. |
==Troubleshooting on running the Linux app== | ==Troubleshooting on running the Linux app== |
Revision as of 06:07, 21 November 2022
This article applies to Qt6 widgetset only.
See also: Multiplatform Programming Guide
Introduction
This interface is based on Qt 6 (Qt 6.2.x LTS). For documentation, fixes and download, go to Qt Project (Installers at download 6.2.4). Lazarus with Qt6 interface (qt6-lcl) can be used on Windows 32/64, Linux x32/x64/arm, macOS x64 (Cocoa). Qt6 widgetsets will be available in Lazarus from 2.4 stable release. Currently you can use it from trunk.
Linux
Most current short term Linux distros have a suitable Qt6 in their standard repositories, but LTS ones like Debian Bullseye and Ubuntu 20.04 do not. It is sometimes possible to install from other repos or as kits from Qt themselves but it might be a bit of a task.
Further, until Lazarus 2.4 is released and makes it into your Distribution of choice, you must build libQt6Pas on your own, or download pre-built (all care, no responsibility) packages for some platforms from 'Releases' of this GitHub page.
Generally, to build Qt6 Lazarus apps, you need qt6-base-dev (deb based) or qt6-qtbase-devel (rpm based). To just run a Qt6 app, you need a lot less, perhaps (TBC) only libqt6core6, libqt6gui6, libqt6printsupport6, libqt6widgets6 and they must be version 6.2.3 or later.
Troubleshooting on compiling on Linux
If you don't download libQt6Pas library, FPC will give the error on compiling your Qt6 app, something about "cannot link to library Qt6Pas". This means it cannot find the "libQt6Pas.so" file. By far the best approach is to either build the library yourself and install it in the proper place or download and install the pre-built ones mentioned above.
Putting libraries in non standard places and trying to point to them is never a good idea on Unix system. However, you could download the tar.gz file from Github, untar and put the library and two symlinks, "libQt6Pas.so" and "libQt6Pas.so.6.2"in the folder of "fpc" binary.
Then FPC must get past the libQt6Pas step, but it can fail further on if you have not installed the general Qt6 libraries mentioned above.
Troubleshooting on running the Linux app
If you compile the app OK, but cannot run the binary, try to run it again from the Terminal. You may see errors about missing .so files. To fix it, unpack libQt6Pas.so* files from GitHub page to e.g. ~/qt6pas. Then open file "~/.bashrc" (I assume OS uses Bash) and add there:
LD_LIBRARY_PATH=~/qt6pas export LD_LIBRARY_PATH
Create additional symlink(s) there too, if the error tells about concrete filename like "libQt6Pas.so.1.0.2".
Do log-out and log-in. Now Qt6 binary must find all .so files.