问题标签 [qbs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
337 浏览

qt - 如何在 QBS 的发布模式下将剥离标志传递给链接器?

我在 MSYS2 下的 Qt Creator 4.5.1 中使用 QBS 1.10.1。

我想在调用链接步骤时传递-sg++,以减小发布模式二进制文件的大小。我该怎么做呢?

到目前为止,我已经按照文档的建议进行了尝试:

但是它实际上并没有通过-sin Release 模式,即好像 Properties 块不存在。

注意:cpp.driverFlags选项实际上将标志传递给 的所有实例g++,而不仅仅是链接步骤;但是我一直无法找到只为链接步骤指定标志的方法。如果不是链接步骤,g++ 足够聪明,可以忽略这些标志。该cpp.linkerFlags字段实际上将标志转换-Wl,"flag"为不适合这些标志的选项。

0 投票
2 回答
1174 浏览

qt - qbs QML 调试不起作用

迁移到 QBS 后,我的 QML 调试停止工作。

我确保:

  1. 我正在构建一个调试版本,C++ 调试工作
  2. 我在 qt 创建者的项目选项卡中检查了“启用 QML 调试”
  3. 我什至尝试手动添加 qbs 属性Qt.declarative.qmlDebugging:true Qt.quick.qmlDebugging:true

仍然 QtCreator 说:

当前活动的调试器语言无法处理某些断点,将被忽略。

QML 调试适用于旧的 .pro

我的系统:

  • Linux archlinux 4.15.7-1-ARCH
  • QBS 1.10.1
  • Qt 5.10.1
0 投票
1 回答
170 浏览

qt - 如何在 QBS 中为 32 位构建使用不同的库路径?

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

它适用于 QT Creator 自动检测的 64 位 MinGW-w64 套件。

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

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

额外的问题:我也想C:/Foo从一些本地设置中获取基本路径,因为在另一个开发系统上,我的库位于不同的基本路径中,而不是C:/Foo. 那可能吗?

0 投票
1 回答
39 浏览

qbs - 类似中继器的 qbs 项目

我正在寻找一种方法来实例化几个 qbs 项目,其数量和属性基于某些产品属性,例如:

我要解决的问题是创建一个对项目中所有其他产品的依赖性较弱的产品:处理已构建的依赖者的输出,但从不强制构建产品

0 投票
1 回答
158 浏览

qt-creator - qbs - 向 Qt 创建者报告错误

我有一个使用 glslangValidator 将 glsl 编译为 SPIR-V 的规则。

这在输入文件有效时效果很好,但是当出现错误时,glslangValidator 将错误打印到 STDOUT 而不是 STDERR 并返回非零值。由于返回值,构建失败(因为它应该),但是 Qt Creator 中的问题窗格没有检测到文件和行号等,因为它们打印到 STDOUT 而不是 STDERR。

我厌倦了使用 stderrFilterFunction 和 stdoutFilterFunction 但我似乎找不到在它们之间传递信息的方法。

有什么方法可以让 Qt Creator 检测到 glslangValidator 报告的问题?

0 投票
1 回答
142 浏览

qt - 编译 Qt qbs 生成的 Visual Studio 解决方案时出错

我正在使用 Qt qbs 为我的新项目生成 Visual Studio 解决方案。我使用 QtCreator 创建一个新的基于 qbs 的项目,然后使用下面的命令行生成 .sln 文件:

当然,我已经为 qbs 生成了 qt595 配置文件。

然后我在 Visual Studio 2015 中打开 sln 文件,按 Ctrl+Shift+B 开始构建。VS 抱怨:

我打开项目“qbs-generate”的属性,发现出了点问题。NMake 命令如下:

这显然有一个不需要的参数“Release”,这就是VS抱怨的原因。

那么,我该如何克服这个问题呢?我尝试手动删除“发布”。VS 那个时候构建成功,但是解决方案再次生成,重新加载后“Release”又回来了!

我的Qt的版本是5.9.5,qbs是1.11.0,我的操作系统是Windows 10 64bit。

0 投票
1 回答
450 浏览

qt - 从 qmake 迁移到 qbs,.pri 文件的类似物并安装技术

Qbs 非常简单和酷的东西。但是,请帮助我了解一些 qbs 技术。

1)想象我有一些来源的目录。使用 qmake,我可以在该目录中创建包含内容的“include.pri”文件:

然后将它(和许多其他公司文件)包含到任何项目中

在 。专业 (.pri) 文件

qbs 的类似物是什么?

我知道模块项目,但是我想要包含的任何目录都需要放入“模块”目录中。这是我的主要项目所需要的,它可以通过qbsSearchPaths看到。而且用“模块”包装每个目录将有些不便。

2)如果那时我想在这个源目录的基础上制作静态库,使用 qmake 我可以将公共头文件和 lib 文件安装到某个外部目录,可从任何其他项目获得。但是我可以用 qbs 做到这一点吗?我已经得出结论Groupinstall仅提供相对于构建目录的路径,而不提供一些抽象(绝对)路径。如果是这样,它的原因是什么?

0 投票
1 回答
310 浏览

c++ - 将使用 QML、QBS 构建的 Qt 应用程序部署到 Windows

我在 QtCreator 中做了一个应用程序

我使用 QML 作为 GUI,我使用 QBS 作为构建系统

我希望能够将应用程序部署到 Windows(也许是 Linux 和 MacOS,但现在,我只关心 Windows)

我尝试使用最小示例遵循 Qmake 的部署教程(使用 QBS 在 Windows 上构建二进制文件,并使用 MSVC2017 编译器,截至 2018 年 5 月 23 日下午 3:38 GMT-6 我一直在尝试安装 MinGW在过去 6 小时内使用 Qt 维护工具,它仍然只有 5%,所以我会在完成后尝试使用 MinGW),但我有以下问题

使用Qt Quick Application-Swipe模板,发布版,带MSVC2017编译器,使用windeployqt.exe --release --qmldir ../src example.exe后获取dll等库

并尝试执行 example.exe,我收到一条消息说

在 cmd 窗口中,就在实际应用程序启动之前

即使我尝试在项目的构建步骤中禁用它,它也不会被禁用

它仍然显示带有消息的 cmd,有没有办法完全确保构建设置能够正常工作?我是否缺少 QtCreator 配置以确保我设置的设置实际上符合它们的预期?我是否需要重新启动 Qtcreator 或 Windows 才能正常工作?

更新:仍然会发生,即使使用 MinGW

0 投票
1 回答
205 浏览

qt - 什么是“无法提取 mkspecs 目录”。运行 `qbs setup-qt /usr/bin/qmake qt` 时是什么意思?

我正在关注本教程和第一个命令

返回此错误:

这是想告诉我什么,这是我需要解决的问题吗?

0 投票
1 回答
33 浏览

qt - 我可以用 sudo 安全地运行 qbs 吗?

背景故事(你可以跳过)

这些天来,当我试图通过运行应用程序来解决我认为是权限限制的问题时,我更加谨慎了sudo,因为我运行了这个命令:

这完全破坏了我的安装,并且由于显而易见的原因引起了许多头痛。好吧,我现在正在使用一种新的(对我而言)Qt 技术,qbs我遇到了一些我认为可能与权限相关的错误。


在我冒很多头疼的风险之前,运行类似的东西是否安全

无需担心破坏完整性qbs