如何在 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")
.
简单地阅读它
在我的 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")
.