我在以下问题上需要一些建议:
我有一个QT项目,目前设置为与qmake很好地配合。但是,由于项目的需求和未来方向的扩展,我需要更改它的构建系统,因为应用程序将需要对其构建方式进行一些更改。
现在每个源文件都被编译成一个非常大的可执行文件,这是打包(手动)并发送到下载区域。一切都很好。
但我的目标是模块化应用程序,将每个“功能”编译成共享库,用户(开发人员)将能够选择他想要编译的组件。这些“功能”放在源代码树的目录中(例如:query_builder,reverse_engineer,mysql_DB_support,version_managemen目录等等),当用户构建应用程序时,他只是告诉构建系统使用查询构建器编译应用程序和mysql,但没有逆向工程师,在这种情况下,构建系统从指定目录添加源文件并从中创建一个lib。
我还有其他要求,例如:
经过一些“市场调查”后,我最终将CMake和SCons作为我可能使用的两种可能的系统。我有一些CMake经验和一些python经验,但还没有SCons。
但我不知道哪一个最适合我的情况,这是我需要你帮助的地方。你能详细说明我应该使用哪一款?如果您认为我的要求可以通过qmake实现,请告诉我,
干杯, F。
答案 0 :(得分:7)
这个问题没有正确的答案,它通常归结为个人偏好,有点像vi和emacs(正确的答案是vi,当然:)
您应该研究每种方法的优缺点,并评估它们如何符合您的要求和需求。
我偏爱SCons,主要是因为我无法忍受CMake语法,但这是个人偏好。以下是我看到的各种优点和缺点:
的 CMake的强> 的
<强>优点:强>
<强>缺点:强>
的 SCons的强> 的
<强>优点:强>
<强>缺点:强>