【问题标题】:Working with Existing C++ code tested under Google Test and adding Qt使用在 Google Test 下测试的现有 C++ 代码并添加 Qt
【发布时间】:2011-04-13 05:41:39
【问题描述】:

我正在使用 Linux (Ubuntu) 中的一些 c++0x 功能编写一个用 C++ 编写的程序。我在 Google Test 中写了一堆测试。我正在使用 g++ 和生成依赖项的普通 makefile。

现在我想开发一个完全独立的 UI。

我已经决定 Qt 会很好,但发现它构建起来有点复杂。我看到最简单的方法是使用 qmake。

我想知道如何将 Qt 构建到我的应用程序中,同时保持所有底层类独立于 Qt。我知道如何通过编写好的代码来做到这一点,但我想要一个好的构建系统。

我不想切换到使用 Qt 的单元测试框架,因为我只想将 Qt 用于 UI,而且我没有看到重写测试的意义。

我应该使用 qmake 并对其进行修改以生成我的 google 测试运行器以及 Qt 应用程序吗? 我是否应该保留我的 makefile 并使用 qmake 仅构建和链接代码的 UI 部分,这将取决于原始 makefile 中生成的 .o 文件? 我应该做点别的吗?

最后,我将如何执行上述任何选项?

【问题讨论】:

    标签: c++ qt makefile googletest


    【解决方案1】:

    CMake 似乎与 Qt 配合得很好(基于我对当前项目的经验)。有一组很好的宏可以做所有标准的 Qt 事情,而且它与其他工具的集成相当好。您的初始项目设置起来可能有点混乱,但我确信网上有许多 Qt 示例。

    您无需切换测试框架即可使用 CMake。我使用 boost 测试框架,但就 CMake 而言,任何使用返回码的程序都可以正常工作。

    如果你使用 cmake,甚至没有理由部分使用 qmake。

    如果这是一个问题,Cmake 也是跨平台的。


    顺便说一句,你也没有理由停止使用 makefile。 Qt 的 qmake 只是调用了一堆你也可以在 make 中做的命令行工具。

    【讨论】:

    • 关于您的答案的底部:是否有任何在线示例说明我需要一个 makefile 来替换 qmake?我正在尝试为这个项目使用 makefile,因为我必须将它交给更喜欢 makefile 的教授(所以我宁愿不切换到 CMake)。
    • 对于普通的 makefile,我不知道示例,但您需要的主要工具是 moc,或者在 linux 上是 moc-qt4。在 Qt-Assistant 中查找。您需要的另一个是uic,它从.ui 文件构建.cpp。只需为文件创建简单的模式规则,它应该很适合 make。
    • 谢谢,我会调查的。通过添加必要的库、包含目录并定义 qmake 默认情况下,我确实让我的 makefile 与 hello world 类型的 Qt 应用程序一起使用。我先从我现在所拥有的开始
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多