我大多是被宠坏的Windows + Visual Studio(或过去的Borland C++或其他)开发者。虽然我和Unix的第一次接触大约在20年前,而且我多年来一直在使用Linux,但我对如何在* nix系统上建立构建的想法非常有限。设置强大的中小型项目的教程* nix build
例如,我可以使用make的基础知识 - 我可以获取许多文件来编译和链接。但我真的不知道如何设置,以应付多种配置 - 如何将发布版本的所有目标文件和目标从调试版本等转到不同的文件夹等等。是的,我可以RTFM和即兴创作有些东西,但这是一个公平的猜测,我会即兴创作一些愚蠢,过度复杂,脆弱和WTF的东西,如果我只知道常用的约定是什么,那么它会更有意义地复制一个共同的约定。我可以运行一个配置脚本,并且我隐约意识到它们与autoconf相关,无论如何,但我不知道如果/为什么/我该如何设置这种类型的东西我自己的项目。
希望这足以说明我在找什么。当然,我可以在这里提出/搜索具体问题,但假设我知道所有正确的问题,以问我几乎肯定不会问的问题。那么 - 任何指针?
编辑
只是觉得应该有一些更长期的经验,更新此。
我尝试过使用premake一段时间,但从长远来看无法忍受它。在很大程度上,Lua背后有一种不喜欢的感觉。
现在,我正在使用cmake。它生成makefiles/visual studio项目/任何。它(迄今)处理了我需要做的所有事情,包括对单元测试和自定义构建步骤的支持。当我习惯cmake的做法时,我发现这是一种好方法,可以让我一次使用多套工具 - 我可以在MinGW GCC中同时检查测试覆盖率,同时在Visual Studio中进行调试。
这表明,当然,我仍然主要在Windows上工作 - 但来回切换比以往更容易。
虽然它产生的makefile /什么,它不能真正被视为一个Makefile生成CMake的缺点的...
- 。生成的makefile依赖于正在安装的cmake。说实话,我不明白为什么他们不会为makefile平台完全放弃makefile,只是直接进行构建,稍微减少潜在的问题。
- 开始并不容易。
第二点主要是通过在这里提问来解决......
- How do I fix this cmake file? - problem linking to imported library
- How to apply different compiler options for different compilers in cmake?
- For the cmake "include" command, what is the difference between a file and a module?
- How to adapt my unit tests to cmake and ctest?
我想,而不是“被宠坏”你的意思是“剥夺” ... :) – Peter 2009-12-31 05:49:27
@Peter - 我想这就像在基本编码。该构建按钮很好,并且易于入门,但随着规模的增加,您不知道您的浪费多少时间。 OTOH,虽然我从事过大型项目,但我从来没有对一个主要的可交付构建负责,所以我猜这个平台并不是我想要的。 – Steve314 2009-12-31 06:25:22