问题标签 [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.
android - 使用 QBS 构建系统时将预编译的动态库添加到 APK
我正在尝试使用 QBS 为 android 编译我的 SDL2 项目。我使用 NDK 的 ndk-build 工具将 SDL2 构建为动态库。但无法弄清楚如何使 QBS(我在我的项目中使用)将 libSDL2.so 包含到生成的 APK 中。
我已经尝试过使用 FileTagger 的方法,在这个问题中提到,但没有运气:
qbs - Qbs:带有子模块的模块
要使用 Qt 子模块,您可以编写如下内容:
但是是否可以实现自定义模块与子模块项目结构?像:
qt - 如何将 QtTest 与 qbs 一起使用
我找不到使用 qbs 构建测试的明确示例。我试过这样
TestTask 是一个 QObject 子类。但是编译器说我错过了 main() 函数。
c++ - Qt 插件:从 qmake 到 qbs。联动错误
我有一个由两种产品组成的 .pro 项目:
播放器.pro
madiaplayer.pro - dll 库
imageplayer.pro - qt 插件
它工作正常。但现在我需要qbs版本。
我写的是这样的:
播放器.qbs
媒体播放器.qbs
图像播放器.qbs
媒体播放器.h
图像播放器.h
但是......我得到了一个非常不清楚的错误结果(它是 ImagePlayer.dll 链接阶段):
ImagePlayer.cpp.obj: 未解析的外部符号“public: static struct QMetaObject const MediaPlayer::staticMetaObject” (?staticMetaObject@MediaPlayer@@2UQMetaObject@@B)
moc_ImagePlayer.cpp.obj: 未解析的外部符号“public: static struct QMetaObject const MediaPlayer::staticMetaObject” (?staticMetaObject@MediaPlayer@@2UQMetaObject@@B)
有人知道出了什么问题吗?
qbs - Qbs 是否支持循环?
我目前正在将我的 qmake 文件移植到 Qbs。在我的 qmake 设置中,我在所有其他项目文件包含defineTest
的单个文件中创建了几个。.pri
这些通常只是调用带有参数(通常是项目名称)的函数之一,就是这样。现在有了 Qbs,在我看来,所有项目都可能只有一个文件(文档甚至暗示)。
但是,我想将我之前的概念更进一步。由于我对每个项目都有相同的结构,因此理论上我可以遍历目录并为每个目录名称创建一个Product
. 我有一个目录列表,但现在我不知道如何创建一个循环来Product
为列表中的每个名称创建一个。
Qbs 是否支持循环?语法是什么?如果不是,那将是什么解决方法,也许导入具有该逻辑的 javascript 模块?但是我如何将它导出回 Qbs 中呢?
QMake 确实有循环,但它缺乏文件系统功能,现在似乎 Qbs 具有文件系统功能,但没有与 qmake 相同的循环......
qt-creator - qbs 1.8:从基础产品继承组
从 qbs 1.5 切换到 1.8 时出现问题。我在“src/qbs/imports/BaseProduct.qbs”中有“BaseProduct”,并且在“src/derived/DerivedProduct.qbs”中有从中派生的产品
在 BaseProduct 我有类似的东西:
它会自动将 Derived.qbs 目录中的所有源添加到项目中。在 1.5 中工作,但在 1.8 中没有。如果我添加到前缀'sourceDirectory +“/”',它几乎可以工作:文件被添加到子项目,但另外分组在绝对路径下,如'/absolute/path/to/src/subproject'。
所以我得到了项目结构:
1.5 带有“前缀:'**/'”[我想要实现的目标]
1.8 带有“前缀:'**/'”[无法构建项目,因为没有添加源代码]
1.8 带有“prefix: 'sourceDirectory + '/**/'” [可以构建项目但会出现难看的组中绝对路径]
那么如何在 1.8 中实现 1.5 的“自动组源”功能而不将组项复制/粘贴到每个子项目,当然也没有绝对路径子组?
qbs - 用于多个子项目的 qbs 单个预编译头文件
我想为多个子项目使用单个预编译头文件。
如果我添加到项目
然后不生成 pch。如果我将 header.h 添加到每个子项目的目录中,则此方法有效:
当然,pch 会为每个子项目生成一次。那么如何只生成一次 pch 并在多个子项目中使用它呢?
qbs - 在规则 ([asd] -> [cpp]) 中使用 Product (CodeGenerator) 时,依赖关系未正确解决
当在具有产品依赖关系的模块内使用规则时,FileTagger 会破坏 qbs 中依赖关系的解析。
我们的项目中有一个 CodeGenerator,它是由项目本身构建的。此 CodeGenerator 从 *.asd 文件生成 C++ 类。名为“Core”的产品使用该 CodeGenerator 从 Core.asd 文件生成类。
我不确定这是否是 qbs 中的错误,但由于 qbs 1.8,我们项目的这一部分不再起作用。
我创建了一个小型测试项目来说明该问题:
RuleUsesProduct.qbs
核心.qbs
Db2cppModule.qbs
这通过来自 RuleUsesProductTest.qbs 的 qbsSearchPath 间接包含
代码生成器.qbs
任何帮助深表感谢!
qt - Qbs自定义模块不起作用
我想制作一个模块来使用 QtRO repc 编译器从 .rep 文件生成 .h 文件。
我对模块进行了编码,但是当我尝试将其加载到应用程序产品中时,它不会加载和禁用该产品。
模块位于 C:\Users\User\qt\qbs
Qbs 模块副本.qbs:
产品.qbs:
项目.qbs:
我不明白我在哪里犯了错误。
预先感谢您的帮助。
qt - 在产品的文件集合中添加文件
我的问题很简单,我想从规则中操作产品的文件 stringList。我尝试使用 product.files.push(file)、product.files.append(file),但两种解决方案都不适合我。
感谢您的帮助。
编辑: 我创建了一个调用repc的模块(QtRemoteObjects .rep 文件编译器),该编译器将 .rep 文件作为输入并生成一个 .h 文件。我需要在我的项目中包含生成的 .h 文件,以便我可以继承其中定义的类型。这是模块代码:
这就是为什么我想要一种方法来自动将这个 .h 生成的文件添加到 qbs 项目中。