gpt4 book ai didi

linux - 关于库相对路径以及如何重用属性字符串的 qbs 问题

转载 作者:太空宇宙 更新时间:2023-11-04 10:34:06 25 4
gpt4 key购买 nike

我正在尝试在由 qbs 1.5.1、Qt 5.6.1、Qt Creator 4.0.1 生成的项目中使用多个库

我目前有几个关于 qt building suit 的问题。

第一个问题:如何重用属性字符串?例如,我尝试定义一个包含一些字符串属性的产品,并尝试在项目的其他地方重用这些属性。

// defines the qbs file in subfolder settings/settings.qbs
import qbs

Product
{
name: 'config'
property string p1 : 'path1' // <- define p1
property string p2: p1 + '/path2' // <- define p2
}

并尝试使用属性:

我。将 settings.qbs 添加到根 project.qbs

import qbs
import qbs.File

Project{
references:{
...,
"settings/settings.qbs"
}
}

二。在另一个文件夹中,该文件夹包含应用程序

// application/app.qbs
import qbs

CppApplication{
type: "application"
name: "myapp"

Depends {name: "cpp"}
Depends {name: "config"}

cpp.libraryPaths [config.p1, config.p2] // <- use p1 and p2 in a different qbs file
}

但是当我运行的时候

qbs debug

在存储库根目录中,属性字符串值为“未定义”。

第二个问题是相对路径。似乎我可以在 files:[] 中使用相对路径,但是当我在 cpp.dynamicLibraries 或 cpp.staticLibraries 中使用相对路径时,编译器无法根据相对路径找到库。但是,如果我使用绝对路径,它就可以工作。我错过了什么吗?

感谢您的帮助:)

最佳答案

你不能引用那样的属性。您需要使用 QML 继承或导入 JavaScript 文件。例如,您可以将 JS 代码放入单独的 .js 文件中,然后将它们导入。

---helpers.js---
function planetsCorrectlyAligned()
{
// implementation
}

---myproject.qbs---
import qbs 1.0
import "helpers.js" as Helpers

Product {
name: "myproject"
Group {
condition: Helpers.planetsCorrectlyAligned()
file: "magic_hack.cpp"
}
// ...
}

此语法在 Qbs 文档中有详细说明:https://doc.qt.io/qbs/language-introduction.html#reusing-project-file-code


我不是在别处回答了图书馆的问题吗?另外,请不要在同一个帖子中添加多个问题;这不是 Stack Overflow 的工作方式。

关于linux - 关于库相对路径以及如何重用属性字符串的 qbs 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38365877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com