qt qbs中如何引用外部库依赖?

How to reference external library dependencies in qt qbs?

假设我已经下载了一些带有 headers 和二进制文件的 xyz 库,并将其放在不在标准搜索路径中的某个位置。对于每个产品,我可以将搜索路径和库添加到 link 到 cpp.includePaths、cpp.libraryPaths、cpp.staticLibraries 等

有没有更好的[标准]方法来做到这一点?如果我正在构建库作为项目的一部分,那么我似乎可以在导出项中定义路径,然后在每个产品中使用依赖项来自动设置路径。这似乎是一个不错的机制,我想知道是否没有办法将它也用于外部依赖项。

qbs 文档有点薄...

谢谢!

您通常会为 xyz 创建自己的模块。您可以通过设置项目的 qbsSearchPaths-属性 添加 QBS 搜索模块和导入的位置。例如。通过将其设置为 "qbs" QBS 将在项目的 "qbs/modules" 子目录中搜索其他模块。

在那里你可以放置一个名为 "xyz.qbs" 的文件,它看起来像这样:

import qbs
Module {
    Depends { name: "cpp" }
    property string xyzPath: "the/xyz/path"
    cpp.includePaths: xyzPath + "/include"
    cpp.libraryPath: xyzPath + "/lib"
    cpp.staticLibraries: "xyz"
}

然后您可以通过简单地向您的项目添加一个 Depend 来使用它:

import qbs
Project {
    qbsSearchPaths: "qbs"
    CppApplication {
        name: "myApp"
        files: "src/**"
        Depends { name: "xyz" }
    }
}