Unable to use lupdate(qt tools) in yocto sdk due to incorrect paths
-
When running lupdate from a yocto sdk, I get the following error:
$ lupdate -pro example.pro sh: 1: /usr/libexec/lupdate-pro: not foundqt.conf:
[Paths] Prefix = /usr Headers = /usr/include Libraries = /usr/lib64 ArchData = /usr/lib64 Data = /usr/share Binaries = /usr/bin LibraryExecutables = /usr/libexec Plugins = /usr/lib64/plugins Qml2Imports = /usr/lib64/qml Translations = /usr/share/translations Documentation = /usr/share/doc Settings = /etc/xdg Examples = /usr/share/examples Tests = /usr/tests HostPrefix = ../.. HostData = ../armv8a-oe-linux/usr/lib64 HostBinaries = usr/bin HostLibraries = usr/lib64 HostLibraryExecutables = usr/libexec Sysroot = ../../../armv8a-oe-linux HostSpec = linux-oe-g++ TargetSpec = linux-oe-g++ SysrootifyPrefix = trueI was of the view that qttools would use HostLibraryExecutables but looking at the source of qttools, i came to know that
LibraryExecutables will be used and since that is an absolute path instead relative to the sdk, i get the above error. I can
resolve this by setting Prefix to ../.. and LibraryExecutables to usr/libexec, i.e. the values being used by HostPrefix and
HostLibraryExecutables respectively. The same problem occurs again when it enters usr/libexec since there is a separate qt.conf
there that lupdate-pro uses:$ lupdate -pro example.pro sh: 1: /usr/libexec/lprodump: not foundI made the same changes as the previous qt.conf, and now it works.
So my question here is that is this approach correct to update the qt.conf or will it cause any issues to the sdk?I am using meta-qt6 6.2 LTS
SDK generated using meta-toolchain-qt6 on ubuntu 20.04 -
When running lupdate from a yocto sdk, I get the following error:
$ lupdate -pro example.pro sh: 1: /usr/libexec/lupdate-pro: not foundqt.conf:
[Paths] Prefix = /usr Headers = /usr/include Libraries = /usr/lib64 ArchData = /usr/lib64 Data = /usr/share Binaries = /usr/bin LibraryExecutables = /usr/libexec Plugins = /usr/lib64/plugins Qml2Imports = /usr/lib64/qml Translations = /usr/share/translations Documentation = /usr/share/doc Settings = /etc/xdg Examples = /usr/share/examples Tests = /usr/tests HostPrefix = ../.. HostData = ../armv8a-oe-linux/usr/lib64 HostBinaries = usr/bin HostLibraries = usr/lib64 HostLibraryExecutables = usr/libexec Sysroot = ../../../armv8a-oe-linux HostSpec = linux-oe-g++ TargetSpec = linux-oe-g++ SysrootifyPrefix = trueI was of the view that qttools would use HostLibraryExecutables but looking at the source of qttools, i came to know that
LibraryExecutables will be used and since that is an absolute path instead relative to the sdk, i get the above error. I can
resolve this by setting Prefix to ../.. and LibraryExecutables to usr/libexec, i.e. the values being used by HostPrefix and
HostLibraryExecutables respectively. The same problem occurs again when it enters usr/libexec since there is a separate qt.conf
there that lupdate-pro uses:$ lupdate -pro example.pro sh: 1: /usr/libexec/lprodump: not foundI made the same changes as the previous qt.conf, and now it works.
So my question here is that is this approach correct to update the qt.conf or will it cause any issues to the sdk?I am using meta-qt6 6.2 LTS
SDK generated using meta-toolchain-qt6 on ubuntu 20.04@Arslan-Ahmad this sounds like something you should report as a bug on Qts bugtracker.
Btw. you can use
lupdatefrom any other Qt installation (desktop one, for example), they are compatible.