如何在 QBS 中为 32 位版本使用不同的库路径?

How do I use a different library path for 32-bit builds in QBS?

在我的 QBS 文件中,我目前有:

cpp.libraryPaths: ["C:/Foo/x64/lib"]

与 QT Creator 自动检测到的 64 位 MinGW-w64 套件兼容。

但是使用 32 位工具包构建失败,因为 32 位库位于不同的目录中 C:/Foo/i686/lib

如果选择了 32 位 MinGW-w64 工具包,如何配置它以便使用不同的库路径?

奖金问题:我也想从一些本地设置中获取基本路径C:/Foo,因为在另一个开发系统上我有不同的库基本路径,而不是 C:/Foo。这可能吗?

对于不同机器上的自定义lib路径,你可以有一个属性,如果需要的话可以通过给qbs传递一个参数来设置:

 property path libPath: "C:/Foo"

然后qbs build blahblah project.libPath:/path/to/lib

为了检测构建类型,您可以使用以下格式:

    Properties {
        condition: qbs.targetOS.contains("windows") && qbs.architecture === "x86"
        cpp.libraryPaths: [libPath + "/i686/lib"]
    }
    Properties {
        condition: qbs.targetOS.contains("windows") && qbs.architecture === "x86_64"
        cpp.libraryPaths: [libPath + "/x64/lib"]
    }

如果你不手动调用 qbs,你可以在项目设置中设置参数,但是如果你必须在不同的机器上更改它,我觉得这有点违背了目的。

在这方面,最好将libPath设置为环境变量。然后通过 Environment.getEnv("varName").

简单地阅读它