You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flatpak中引入libusb-1.0遇阻?Gnome Builder开发依赖错误排查

解决Flatpak构建时找不到libusb-1.0的问题

你的问题核心出在模块构建顺序错误、libusb构建系统配置不对,以及缺少USB设备权限这几个点上,下面是具体修复步骤:

1. 调整模块构建顺序

Flatpak严格按照modules数组的顺序依次构建组件,你把自己的应用app1放在了libusb-1.0前面,导致构建应用时libusb还未编译安装,自然找不到依赖。把libusb模块移到app1前面:

"modules" : [
     {
        "name" : "libusb-1.0",
        "builddir" : true,
        "buildsystem" : "autotools",
        "sources" : [
            {
                "type" : "archive",
                "url" : "https://github.com/libusb/libusb/releases/download/v1.0.27/libusb-1.0.27.tar.bz2"
            }
        ]
    },
    {
        "name" : "app1",
        "builddir" : true,
        "buildsystem" : "meson",
        "sources" : [
            {
                "type" : "git",
                "url" : "file:///home/user/projects"
            }
        ]
    }
]

2. 修正libusb的构建系统

你下载的libusb 1.0.27官方tar包默认采用autotools(configure/make)构建,不是cmake,所以必须把buildsystem从cmake改成autotools,这样才能正确编译安装libusb并生成pkgconfig文件,供meson识别依赖。

3. 添加USB设备权限

你的应用要控制LED灯,必须拥有USB设备访问权限,在finish-args里补充权限配置:

"finish-args" : [
    "--share=network",
    "--share=ipc",
    "--socket=fallback-x11",
    "--device=dri",
    "--socket=wayland",
    "--device=all" // 允许访问所有USB设备,也可指定特定VID/PID提升安全性
]

如果知道LED设备的VID和PID,可以用更严格的规则,比如--usb-device=0x1234:0x5678替换--device=all。

4. 调整cleanup规则(可选)

你的全局cleanup规则删除了/lib/pkgconfig和/share/pkgconfig,这会删掉libusb安装的依赖配置文件,导致meson后续可能无法识别依赖。可以给libusb模块单独设置cleanup规则,保留pkgconfig文件:

{
    "name" : "libusb-1.0",
    "builddir" : true,
    "buildsystem" : "autotools",
    "cleanup": [
        "/include",
        "/man",
        "/share/doc",
        "*.la",
        "*.a"
    ],
    "sources" : [
        {
            "type" : "archive",
            "url" : "https://github.com/libusb/libusb/releases/download/v1.0.27/libusb-1.0.27.tar.bz2"
        }
    ]
}

验证修改

修改完manifest后,重新在Gnome Builder中构建应用,meson应该能正常识别libusb-1.0依赖。如果仍有问题,可以手动进入Flatpak环境检查libusb安装状态:

flatpak run --command=bash org.gnome.Sdk//master
pkg-config --modversion libusb-1.0

若能输出libusb版本号,说明依赖安装成功。

内容的提问来源于stack exchange,提问作者Reynaldo Rea

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 19:30:54