问题标签 [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 回答
55 浏览

c++ - 如何通过 QBS 附加 PostgreSQL C 库?

我有一个项目应该使用 postgresql c-library (libpq) 并且项目已配置。如何配置 QBS 模块以将所有必需的标头和库导入项目?

0 投票
0 回答
630 浏览

qt-creator - 如何使用 qbs 在 Qt Creator 中指定远程目录(target.path)

我想使用 QBS 在 QNX 下的远程设备上部署文件进行构建。我想将它安装在/root/MyQbsInstallDir目录中。其中 MyQbsInstallDir 是通过qbs.installDir.

但在 Qt Creator 的运行部分,我看到//MyQbsInstallDir作为远程目录。我试图指定qbs.installRoot:/root/,但没有帮助。

我知道使用 qmake 可以设置

我怎样才能用 QBS 做到这一点?

0 投票
1 回答
291 浏览

qbs - Qbs中是否有办法自动列出所有子文件夹(通过在每个子文件夹上应用组属性)和文件只需提及根文件夹

我是 Qbs 的新手,正在尝试使用 Qbs 构建系统配置 BareMetal 项目。好吧,目前看起来必须使用组属性手动添加所有子文件夹。

对于大型项目来说,这是一项繁重的工作,并且在添加新文件或子文件夹时必须更新 Qbs 文件。

我只是想知道是否可以首先从根文件夹中获取所有子文件夹,然后遍历每个子文件夹并在每个子文件夹上应用组属性,同时应用排除文件等异常

对此的任何帮助将不胜感激。

0 投票
1 回答
1636 浏览

c++ - 将应用程序构建为产品集合的一部分时出现错误“/usr/bin/ld:找不到库:文件格式无法识别”

我有一个 QBS 项目,它是子项目的集合,包括静态库、共享库和 Qt GUI 应用程序。Qt GUI 应用程序一直给我一个问题,即链接阶段失败,为项目链中较早构建的库抛出几个“/usr/bin/ld:找不到{library}:文件格式无法识别”错误。但是,它并不对所有库都这样做,包括与确实引发此错误的库具有几乎相同的 .qbs 文件的库。

奇怪的是,如果我自己构建应用程序,也就是说我从应用程序的项目目录中而不是在顶层运行 qbs,它构建得很好(假设依赖库都存在于它们的安装目录中)。我看到的主要区别是,在构建完整项目时,应用程序的 cpp.libraryPaths 对于项目中的所有产品都被忽略,并且应用程序尝试链接构​​建目录中生成的 lib 文件,而在构建应用程序时它自己的 cpp.libraryPaths 按预期使用,并且安装目录中的文件已成功链接。

我不知道为什么安装目录中的 lib 文件可以链接,而构建目录中的文件会引发错误。什么可能导致链接首先失败?此外,如何修复我的项目配置,以便我可以通过在顶层调用 qbs 来构建所有内容。我可能会以错误的方式处理这个问题吗?

这是我用来启动构建的命令:

以及问题的直观表示:

这是相关 qbs 文件的非常简化的复制

0 投票
1 回答
167 浏览

qmake - qmake system() 命令的 Qbs 模拟

在 中qmake,有一个system()函数,它只是运行您在编译时传递的命令。问题是:有没有qbs类似的东西?Qbs Rule/Artifact方法是为不同的目的而设计的,对于简单的用例来说过于冗长

0 投票
1 回答
274 浏览

qbs - Qbs Depends Item 影响产品列表

假设我有一些包含大量子项目的项目,并且在大多数情况下,我只需要一次编译其中的几个:

假设plugin3取决于plugin1plugin2

在这种情况下,我必须将plugins属性设置为:

这是我想要避免的。所以,问题是:有没有办法让子项目依赖项自动添加为项目references

ps 还有一种替代方法可以使所有子项目都存在,但有条件地禁用。我可以通过依赖子项目以某种方式使它们启用吗?

0 投票
2 回答
367 浏览

qbs - qbs avr 编译

我尝试用 qbs 构建简单的项目

我得到错误

我错了什么?

文件 main.c 存在于项目和目录中。

如果我从命令提示符启动此命令,我不会收到错误消息。

0 投票
1 回答
302 浏览

qbs - Qbs:模块可以安装文件吗?

我想要一个模块,它将导出所有需要的依赖项,如包含路径、库路径,并将安装所需的运行时库。

一切正常,但未安装文件。有可能这样做吗?

更新 1

文件正确安装:

  • 如果直接指定完整或相对路径(作为文字)
  • 通过使用项目的属性。

工作解决方案:

但是当我尝试使用模块的属性时,它说:“参考错误:找不到变量:...”

此外,如果 FileInfo 模块用于构建路径,则不起作用。组外路径得到了正确解决。

结论
我找到了 2 个解决方案:

  • 将路径编码为文字。便携解决方案
  • 使用项目的属性。便携,但取决于项目项目。

我不知道为什么不能在组内使用模块的属性。是否有一些限制或这是一个错误?

0 投票
2 回答
576 浏览

qbs - Qbs:安装文件保留层次结构

我有一个目录,其中包含要与我的应用程序(qml 插件)一起部署的子目录中的文件。问题是:如果我尝试安装目录:

我得到一个“不递归地将目录 'mysrc/dir' 复制到目标目录 'mybuild' 中。而是安装单个文件工件。” 错误。

如果我尝试安装文件:

然后所有这些文件都进入同一目录,忽略层次结构(并且无法安装,因为其中一些共享名称)。

具有多个组的解决方案也过于冗长。

有没有办法递归地安装带有文件的目录,保留层次结构?

0 投票
1 回答
188 浏览

qbs - Qbs:安装步骤的规则

简而言之:是否可以使Rule项目(或类似项目)在install步骤中执行?

如此处所述,我通过 item.xml 安装文件时遇到问题Group。一个简单的Rule脚本可能会做,但它必须在某个时候运行,最好是在安装期间。