我有一个典型的应用程序开发场景,库+应用程序,都是qbs项目。 在库项目中,我将布尔属性staticBuild默认为true,如下所示:
Project { // the library
property bool staticBuild: true
Product {
type: staticBuild ? "staticlibrary" : "dynamiclibrary"
name: "Lib"
}
}
在应用程序项目中,我使用Depends项将Lib作为依赖项添加如下:
Project { // Application
Product {
type: "application"
Depends { name: "Lib" }
Lib.staticBuild: false // want to link to a dll.
}
}
但是这个属性引用不起作用,我收到错误告诉我该属性未被声明。
我该怎么办?
答案 0 :(得分:0)
首先,图书馆甚至没有这个属性;它的父项目呢。但即使它确实如此,它也不会从外部可见,更不可能。请记住,库只存在一次,而可能存在许多依赖项。因此,如果您想要决定如何构建库,则需要在更高级别执行此操作,两个产品都会从中获取信息。这可能是一个共同的父项目(通常是顶层项目),也可能是两个产品都吸引的项目特定模块。重点是决策是在一个中心位置。