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

Tyl*_*iel 7 c++ qt qbs

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

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

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

谢谢!

Joh*_*kic 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"
}
Run Code Online (Sandbox Code Playgroud)

然后,您只需在项目中添加Depend即可使用它:

import qbs
Project {
    qbsSearchPaths: "qbs"
    CppApplication {
        name: "myApp"
        files: "src/**"
        Depends { name: "xyz" }
    }
}
Run Code Online (Sandbox Code Playgroud)