如何在qt qbs中引用外部库依赖关系

How to reference external library dependencies in qt qbs?

本文关键字:外部 依赖 关系 引用 qt qbs      更新时间:2023-10-16

假设我下载了一些带有头文件和二进制文件的库xyz,并将其放在标准搜索路径之外的某个地方。对于每个产品,我可以添加搜索路径和库链接到cpp。includePaths, cpp。libraryPaths, cpp。staticLibraries等。

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

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" }
    }
}