需要构建没有条件编译的GUI

时间:2014-07-02 13:30:31

标签: c++ qt user-interface cmake wxwidgets

最近我一直在搜索我应该使用GUI在C ++中构建一个应用程序,并发现wxWidgets和QT最近主要使用,但我读过QT有机会在不久的将来占据主导地位因此它是首选的许多我从未使用它,但我想知道为什么它变得如此受欢迎。但是,我不知道它是否符合我的要求。

目标是确保我们拥有可在Windows和Linux上运行的软件,而无需复杂的配置(例如安装MinGW只是为了运行我的应用程序),并在没有任何条件编译的情况下编译它们。我必须坚持“无条件汇编”规则;

我想知道CMake是否可以处理所有我使用的wxWidgets或QT。

2 个答案:

答案 0 :(得分:1)

我只能回答CMake和Qt的情况。如果您将Qt与CMake一起使用,则可以构建适用于Windows和Linux的可执行文件,而无需更改代码行或需要条件代码。

这也是Qt占据主导地位的原因。它只需节省大量时间,因为您只需编写一次所有代码,只需在不同平台上编译相同的源代码即可。

此外,代码保持非常干净,因为您不需要任何“宏魔术”来在Windows和Linux之间构建不同的代码。

答案 1 :(得分:-1)

对于我的项目,我倾向于在Linux和Windows上使用wxWidgets(我需要GUI)。对于Windows,我使用mingw-w64作为工具链与静态编译的wxWidgets(或我使用的任何其他库)。

因此,当我为Windows平台发布新版本时,我不需要担心最终用户的依赖关系,因为它在可执行文件中是静态链接的。当然,您可以使用动态链接执行相同的操作,但只需将所有内容链接到应用程序中就不那么痛苦了。 Windows版本通常通过Code :: Blocks生成,但也可以通过Windows上的makefile轻松完成(使用mingw-w64)。

在Linux上我通常只是在新版本上提供源代码。在Linux上我使用一个简单的makefile。