【问题标题】:Do I need the Qt toolchain to target a library built with Qt?我是否需要 Qt 工具链来定位使用 Qt 构建的库?
【发布时间】:2016-02-23 23:00:46
【问题描述】:

是否有必要使用 Qt 工具链(pro 文件、qmake 等)来链接使用 Qt 实现和构建但本身仅公开 C 样式 API 的库?库中没有使用 Qt 特定的类。

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

【问题讨论】:

  • 我认为不会。为什么不尝试不使用 Qt 工具链?您可以检查依赖项。看stackoverflow.com/questions/6242761/…
  • 只要你有所有的依赖项(即 Qt-DLLs)它应该可以工作

标签: c++ qt shared-libraries static-libraries toolchain


【解决方案1】:

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

绝对不是。


生成代码的Qt工具有mocrcc;如果您的 API 不使用它,那么很可能只使用普通的“C”工具。

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

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

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

不使用 Qt 工具需要权衡取舍。但是,大部分 Qt 功能都可以在没有工具的情况下使用。

【讨论】:

    猜你喜欢
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-26
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    相关资源
    最近更新 更多