解决编译问题#

抑制警告#

生成器将生成一些可能不相关的警告。该 suppress-warning 节点用于抑制指定的警告,且为 typesystem 节点的子节点。

<typesystem>
    <suppress-warning text="..." />
</typesystem>

text 属性是要抑制的警告文本,可能包含 * 通配符(如果警告包含实际的 “*”,则使用 “” 来转义正则表达式匹配)。

extra-includes#

extra-includes 节点包含额外包含文件的声明,可以是 namespace-typevalue-typeobject-typetypesystem 和节点的子节点。

生成器会自动尝试读取每种类型的全局头文件,但有时要在生成的 C++ 代码中包含额外的文件以确保代码能编译。这些文件必须使用 extra-include 节点中的 include 节点列出。

<value-type>
    <extra-includes>
        <include file-name="..." location="global | local"/>
    </extra-includes>
</value-type>

file-name 属性是要包含的文件名,如 “QStringList”。location 属性是文件的位置:global 表示文件位于 $INCLUDEPATH 中,将使用 #include <…> 包含,local 表示文件位于本地目录中,将使用 #include “…” 包含。

当作为 typesystem 节点的子节点时,包含指令被添加到包含类型转换器和注册代码的模块源文件中。它可以用来指定必要转换为代码片段的额外包含。

include#

include 节点指定必须包含的文件名称和位置,是 namespace-typevalue-typeobject-typeextra-includes 节点的子节点。

生成器会自动尝试为每种类型读取全局标题。使用包含节点可覆盖该行为,并提供一个替代文件。包含节点还可以用来指定额外的包含文件。

<value-type>
    <include file-name="..."
        location="global | local"/>
</value-type>

file-name 属性是要包含的文件名,如 “QStringList”。location 属性是文件的位置:global 表示文件位于 $INCLUDEPATH 中,将使用 #include <…> 包含,local 表示文件位于本地目录中,将使用 #include “…” 包含。