我需要Qt工具链来针对用Qt构建的库吗

Do I need the Qt toolchain to target a library built with Qt?

本文关键字:Qt 构建 工具      更新时间:2023-10-16

是否需要使用Qt工具链(专业文件、qmake等…)来链接使用Qt实现和构建的库,但其本身仅公开C风格的API?库中没有使用任何特定于Qt的类。

这个问题适用于静态库和动态库。

必须使用Qt工具才能链接到使用Qt实现的库。

绝对不是。


生成代码的Qt工具是mocrcc;如果你的API不使用这个,那么很有可能只使用普通的"C"工具。

moc是一个用于信号和插槽的工具,甚至C++代码也不需要使用Qt工具来链接Qt库。您可以在make规则中使用grep等扫描MOC宏的"头",以了解是否应在可执行文件上运行moc程序。遵循class.ccclass=h中有一个声明的约定,这很容易做到。

rcc是一种将资源与应用程序捆绑在一起的功能。然而,这将用于Qt应用程序/库,在您的情况下,您只想与它链接。

因此,甚至可以在没有qmake等的情况下制作Qt应用程序/库。但是,您的makefile需要满足qmake等所做的所有可移植性问题,否则您可能不关心这一点。

不使用Qt工具是有利弊的。然而,绝大多数Qt功能都可以在没有工具的情况下使用。