首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SCons或CMake代替qmake

SCons或CMake代替qmake
EN

Stack Overflow用户
提问于 2013-01-07 13:52:50
回答 1查看 5.1K关注 0票数 12

在以下问题上,我需要一些建议:

我有一个QT项目,该项目目前被设置为与qmake很好地工作。但是,由于项目的需求和未来方向的扩展,我需要更改它的构建系统,因为应用程序将需要在构建方式上进行一些更改。

现在,每个源文件都被编译成一个相当大的可执行文件,这是打包(手动)并发送到下载区域。一切都很好。

但我的目标是模块化应用程序,使每个“特性”都被编译到共享库中,用户(开发人员)将能够选择他想要编译的组件。这些“特性”放在源树中的目录中(例如: query_builder、reverse_engineer、mysql_DB_support、version_managemen目录等)当用户构建应用程序时,他只是告诉构建系统用查询生成器和mysql编译一个应用程序,但是没有反向工程,在这种情况下,构建系统从指定的目录中添加源文件并从中创建一个库。

我还有其他要求,例如:

  • windows构建,linux构建
  • 可选的包构建(deb,rpm)
  • 对QT和可能的QT5的支持
  • 多个可执行文件(GUI客户端、CLI客户端)

经过一些“市场调查”之后,我最终选择了CMake和SCons作为我可能使用的两种系统。我有一些CMake经验和一些python经验,但还没有SCons。

但我不知道哪一个最适合我的案子,我需要你的帮助。你能说明一下我该用哪一种吗?如果你认为我的要求可以用qmake实现,请告诉我,

干杯,f。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-07 14:25:40

这个问题没有正确的答案,它通常归结为个人喜好,类似于vi和emacs (正确的答案是vi,当然:)

您应该研究每一种方法的优缺点,并评估它们如何与您的需求和需求相匹配。

我偏爱SCons,主要是因为我无法忍受CMake语法,但这是个人偏好。在我看来,这两种方法各有优缺点:

CMake

Pros:

  • 类似于QMake,考虑到它是makefile生成器
  • CMake被广泛使用,因此有大量的参考资料和帮助可用。
  • 有一个GUI (基于下面的Calvin1602评论,我自己也不知道)

Cons:

  • CMake有它自己的、被发明的语法,许多人(包括我自己)都觉得这是不直观的。
  • 2步骤构建过程,首先创建Makefile,然后实际执行编译
  • 几乎不可能读取生成的Makefiles

SCons

Pros:

  • 它的语法是Python,它被广泛使用并且相对容易学习。( Python很酷:)
  • 构建过程是一个步骤,只需执行SCons,并进行编译。没有要生成或维护的中间生成文件。
  • 在过去,SCons比CMake慢,但是从那时起它比CMake快得多,可能和CMake一样快或者更快,因为它不需要生成makefile。
  • 丰富的特性集,支持多种语言,而CMake则专注于C/C++
  • 非常准确的隐式依赖系统:不需要显式列出依赖的标题、库等。如果需要,可以指定显式依赖项。
  • eclipse插件是可用的。Eclipse也有用于Python的插件。
  • 有为Qt项目创建的工具来处理MOC和其他相关的代码,如前面提到的here

Cons:

  • SCons可能不像CMake那样被广泛使用,但是仍然有大量的支持。
  • 根据项目的大小,SCons可以使用大量的内存,因为它在实际编译任何东西之前都会解析所有的构建脚本并在内存中构建一个依赖树。然而,这确实允许进行更准确的依赖项检查。
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14197372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档