QBS 配置文件不会随时保存和更新
QBS profiles are not saved and updated at any time
我在 PC 上安装了 QtCreator 运行 Windows 和 Ubuntu。 Ubuntu 我曾经为 Linux 和 RaspberryPi 构建一个项目。 Windows PC 用于在 x86、x86_64 和 android 中构建项目:armv7a、arm64、x86(用于模拟器)。另外windows用于开发stm32的嵌入式软件。因此,我需要 windows 的 6 个 qbs 配置文件和 linux 的 3 个配置文件。该项目本身使用 QBS 作为构建系统。
问题是很难确定当前使用的是哪一套。下面我给出了我的 qbs 文件的开头,我在其中初始化了主要变量。
import qbs
Project {
property var _TargetEnum: ({
win_x86 : 1,
win_x86_64 : 2,
raspberryPi : 3,
stm32 : 4,
android : 5,
linux : 6,
})
property var Target
Properties {
condition: (qbs.targetPlatform === "windows")
Target: (qbs.architecture === "x86") ? _TargetEnum.win_x86 : _TargetEnum.win_x86_64
}
Properties {
condition: (qbs.targetPlatform === "RaspberryPi")
Target: _TargetEnum.raspberryPi
}
Properties {
condition: (qbs.targetPlatform === "stm32")
Target: _TargetEnum.stm32
}
Properties {
condition: (qbs.targetPlatform === "android")
Target: _TargetEnum.android
}
Properties {
condition: (qbs.targetPlatform === "linux")
Target: _TargetEnum.linux
}
property var _BuildModeEnum: ({
debug : 1,
release : 2
})
property var BuildMode: qbs.buildVariant.contains("debug") ?
_BuildModeEnum.debug :
_BuildModeEnum.release
...
}
自动创建的 QBS 配置文件没有完全填写的字段,我必须使用 qbs-config-ui 实用程序手动填写这些字段。此外,此实用程序和 qtcreator 的行为在 windows 和 linux 中有所不同。
在windows中,发生以下情况:打开qtcreator后,Tools-Kit-Qbs中的旧设置保留在上次工作session中,打开一个工作项目后,设置被重置到默认状态。接下来,我打开 qbs-config-ui 实用程序并手动更改我需要的包中的 qbs.targetPlatform 和 qbs.architecture,然后保存设置。在 QtCreator 中,我打开设置 window 并看到我的更改已经完成。然后我可以工作到下一个工作session.
在Linux中,这种行为通常不存在,没有规律性如何在 QtCreator 中更新配置文件以及它如何运行我还没有看到。
我的问题是如何一劳永逸地正确配置 QBS 配置文件,这样我就不必重新配置它们。
不要试图修改从 Qt Creator 工具包派生的 qbs 配置文件 "from the outside" -- 正如您所发现的那样,这不会可靠地工作。这些配置文件可以随时重新生成。相反,转到工具 -> 选项 -> 套件并通过套件对话框中的 "Additional Qbs Properties" 条目进行更改。这些更改将持续存在。
我在 PC 上安装了 QtCreator 运行 Windows 和 Ubuntu。 Ubuntu 我曾经为 Linux 和 RaspberryPi 构建一个项目。 Windows PC 用于在 x86、x86_64 和 android 中构建项目:armv7a、arm64、x86(用于模拟器)。另外windows用于开发stm32的嵌入式软件。因此,我需要 windows 的 6 个 qbs 配置文件和 linux 的 3 个配置文件。该项目本身使用 QBS 作为构建系统。
问题是很难确定当前使用的是哪一套。下面我给出了我的 qbs 文件的开头,我在其中初始化了主要变量。
import qbs
Project {
property var _TargetEnum: ({
win_x86 : 1,
win_x86_64 : 2,
raspberryPi : 3,
stm32 : 4,
android : 5,
linux : 6,
})
property var Target
Properties {
condition: (qbs.targetPlatform === "windows")
Target: (qbs.architecture === "x86") ? _TargetEnum.win_x86 : _TargetEnum.win_x86_64
}
Properties {
condition: (qbs.targetPlatform === "RaspberryPi")
Target: _TargetEnum.raspberryPi
}
Properties {
condition: (qbs.targetPlatform === "stm32")
Target: _TargetEnum.stm32
}
Properties {
condition: (qbs.targetPlatform === "android")
Target: _TargetEnum.android
}
Properties {
condition: (qbs.targetPlatform === "linux")
Target: _TargetEnum.linux
}
property var _BuildModeEnum: ({
debug : 1,
release : 2
})
property var BuildMode: qbs.buildVariant.contains("debug") ?
_BuildModeEnum.debug :
_BuildModeEnum.release
...
}
自动创建的 QBS 配置文件没有完全填写的字段,我必须使用 qbs-config-ui 实用程序手动填写这些字段。此外,此实用程序和 qtcreator 的行为在 windows 和 linux 中有所不同。
在windows中,发生以下情况:打开qtcreator后,Tools-Kit-Qbs中的旧设置保留在上次工作session中,打开一个工作项目后,设置被重置到默认状态。接下来,我打开 qbs-config-ui 实用程序并手动更改我需要的包中的 qbs.targetPlatform 和 qbs.architecture,然后保存设置。在 QtCreator 中,我打开设置 window 并看到我的更改已经完成。然后我可以工作到下一个工作session.
在Linux中,这种行为通常不存在,没有规律性如何在 QtCreator 中更新配置文件以及它如何运行我还没有看到。
我的问题是如何一劳永逸地正确配置 QBS 配置文件,这样我就不必重新配置它们。
不要试图修改从 Qt Creator 工具包派生的 qbs 配置文件 "from the outside" -- 正如您所发现的那样,这不会可靠地工作。这些配置文件可以随时重新生成。相反,转到工具 -> 选项 -> 套件并通过套件对话框中的 "Additional Qbs Properties" 条目进行更改。这些更改将持续存在。