xmake无法检测到libqt5multimedia5包
Xmake 版本
v2.9.3+20240624
操作系统版本和架构
Ubuntu 22.04LTS
描述问题
本机已通过apt安装 libqt5multimedia5 包,配置项目时报错说无法安装该包。
期待的结果
可以检测到包,从而跳过安装。
工程配置
add_requires({
"apt::qtbase5-dev", "apt::qtdeclarative5-dev", "apt::libqt5webkit5-dev",
"apt::qttools5-dev-tools", "apt::qtmultimedia5-dev",
"apt::libqt5multimedia5", "apt::libqt5multimedia5-plugins"
}, {alias = "qt5widgets"})
附加信息和错误日志
note: try installing libqt5multimedia5 with administrator permission (pass -y or --confirm=y/n/d to skip confirm)?
please input: y (y/n)
y
/usr/bin/sudo env PATH=/home/jingkaimori/.xmake/packages/g/git/latest/725e51fe81b74141ade9efbd3ccaf900/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin XMAKE_STATS= COLORTERM=truecolor /usr/bin/apt install -y libqt5multimedia5
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
libqt5multimedia5 已经是最新版 (5.15.3-1)。
下列软件包是自动安装的并且现在不需要了:
dh-elpa-helper libjsoncpp25 librhash0 libwpe-1.0-1 libwpebackend-fdo-1.0-1
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 3 个软件包未被升级。
finding libqt5multimedia5 from apt ..
checking for apt::libqt5multimedia5 ... no
error: .../modules/private/action/require/impl/actions/install.lua:430: fetch apt::libqt5multimedia5-latest failed!
stack traceback:
[C]: in function 'error'
[@programdir/core/base/os.lua:973]: in function 'raiselevel'
[@programdir/core/sandbox/modules/utils.lua:143]: in function 'assert'
[.../modules/private/action/require/impl/actions/install.lua:430]:
=> install apt::libqt5multimedia5 latest .. failed
.../modules/private/action/require/impl/actions/install.lua:430: fetch apt::libqt5multimedia5-latest failed!
stack traceback:
[C]: in function 'error'
[@programdir/core/base/os.lua:973]: in function 'raiselevel'
[@programdir/core/sandbox/modules/utils.lua:143]: in function 'assert'
[.../modules/private/action/require/impl/actions/install.lua:430]:
if you want to get more verbose errors, please see:
-> /mnt/source/midieditor/build/.packages/a/apt_libqt5multimedia5/latest/cache/installdir.failed/logs/install.txt
error: @programdir/core/main.lua:329: @programdir/modules/async/runjobs.lua:325: .../modules/private/action/require/impl/actions/install.lua:506: install failed!
stack traceback:
[C]: in function 'error'
[@programdir/core/base/os.lua:973]:
[.../modules/private/action/require/impl/actions/install.lua:506]: in function 'catch'
[@programdir/core/sandbox/modules/try.lua:123]: in function 'try'
[.../modules/private/action/require/impl/actions/install.lua:370]:
[...modules/private/action/require/impl/install_packages.lua:491]: in function 'jobfunc'
[@programdir/modules/async/runjobs.lua:241]:
stack traceback:
[C]: in function 'error'
@programdir/core/base/os.lua:973: in function 'base/os.raiselevel'
(...tail calls...)
@programdir/core/main.lua:329: in upvalue 'cotask'
@programdir/core/base/scheduler.lua:406: in function <@programdir/core/base/scheduler.lua:399>
Bot detected the issue body's language is not English, translate it automatically.
Title: xmake cannot detect libqt5multimedia5 package
你调下这里,看看为啥没找到 https://github.com/xmake-io/xmake/blob/dev/xmake/modules/package/manager/apt/find_package.lua
Bot detected the issue body's language is not English, translate it automatically.
Go here and see why it is not found https://github.com/xmake-io/xmake/blob/dev/xmake/modules/package/manager/apt/find_package.lua
这个包,没有头文件,也没有 .so 后缀的动态库,只有 .so.5 。。也没有 pkgconfig files
所以找不到,至少得有个 libxxx.so 才能找到库
$ dpkg --listfiles libqt5multimedia5
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libQt5Multimedia.so.5.15.3
/usr/share
/usr/share/doc
/usr/share/doc/libqt5multimedia5
/usr/share/doc/libqt5multimedia5/changelog.Debian.gz
/usr/share/doc/libqt5multimedia5/copyright
/usr/lib/x86_64-linux-gnu/libQt5Multimedia.so.5
/usr/lib/x86_64-linux-gnu/libQt5Multimedia.so.5.15
https://github.com/xmake-io/xmake/blob/45852e6ffcd3f043d961574e72f40d287a2898ab/xmake/modules/package/manager/apt/find_package.lua#L51
Bot detected the issue body's language is not English, translate it automatically.
This package has no header file and no dynamic library with .so suffix, only .so.5. . There are no pkgconfig files either
So it cannot be found, at least there must be libxxx.so to find the library
$ dpkg --listfiles libqt5multimedia5
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libQt5Multimedia.so.5.15.3
/usr/share
/usr/share/doc
/usr/share/doc/libqt5multimedia5
/usr/share/doc/libqt5multimedia5/changelog.Debian.gz
/usr/share/doc/libqt5multimedia5/copyright
/usr/lib/x86_64-linux-gnu/libQt5Multimedia.so.5
/usr/lib/x86_64-linux-gnu/libQt5Multimedia.so.5.15
https://github.com/xmake-io/xmake/blob/45852e6ffcd3f043d961574e72f40d287a2898ab/xmake/modules/package/manager/apt/find_package.lua#L51