7

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

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

qbs 文档有点薄......

谢谢!

4

1 回答 1

6

您通常会为 xyz 创建自己的模块。您可以通过设置项目的 qbsSearchPaths-property 添加 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" }
    }
}
于 2015-11-17T14:56:52.743 回答