c++ - 添加或不添加 Qt Libs 和 Headers 到项目目录

标签 c++ qt dependency-management project-organization

将相关的 Qt 库和 header (开源版本)添加到项目存储库是否有意义,或者我应该只从 sdk 目录中引用它们?


我(独自)正在开发一个跨平台(windows/linux)c++ 应用程序,它将使用许多第三方开源库,包括 Qt、OpenCV、log4cpp 等等。

为了方便(快速创建 GUI),我开始使用 Qt Creator 进行开发。目前,我在项目目录外的 Linux 和 Windows 上都安装了 Qt Sdk。

我计划转向 CMAKE 以获得更好的可配置性,例如源外构建和 Qt Creator 的独立性,我希望将所有依赖项包含在项目目录结构中 - 这样我或其他任何人都可以 check out 项目并构建,无需安装任何其他依赖项。

我已经将除 Qt 之外的所有库添加到目录中,因为我有点不确定天气是否值得 - 似乎 CMAKE 依赖于 Qt Sdk 来编译 Qt 特定文件,即 moc、ui 等...(see here ) 是这样吗?还是有更适合的构建工具? (最初我打算使用 Scons,但我决定不使用,因为似乎支持有限..自 2010 年以来,Qt4 Tools 一直没有开发,这也没有激发信心。)

最佳答案

Qt 太大而无法放在项目目录中,即使您只包含它的一个模块也是如此。您还可以在 CMake 中使用一些方便的功能来使用 Qt(添加 moc、rcc、ui)。您甚至可以自己编写这些函数(很快,它们只是添加一个预构建命令)。

对于构建操作:您将需要使用 moc(可能还有 uircc,...),它是CMake 不提供。因此,想要构建您的应用程序的人必须安装 Qt SDK。幸运的是,此安装非常简单。

关于c++ - 添加或不添加 Qt Libs 和 Headers 到项目目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13072203/

相关文章:

c++ - C 中的 Malloc 和结构给我错误(遵循教程)?

c++ - 关于 C++ 中的移位运算符

c++ - 可以使用消息从 native 应用程序发送到 chrome 扩展的数据的大小限制是多少

c++ - QFlags 枚举类型转换突然失败

javascript - 保护 Web 应用程序中的第三方库的安全

java - 为每个模块在自己的模块上运行 spring boot 单元测试

c++ - istringstream 不尊重基地?

c++ - 非 Qt 应用程序中基于 Qt 的 DLL 中的事件循环

qt - QML:在控制台中列出所有对象成员/属性

java - Ivy - 在 IDE 中工作时包含依赖项