公司开发的产品,要运行在不同的 linux/unix环境中。
以前程序员是自行一套,有手工编写Makefile的,有用autoconf的。
手工编写Makefile的,有一个在ubuntu11.04上正常编译连接,11.10上就不能正确连接了。
看到的用autoconf工具的生成configure,很容易编译。
开始考虑公司使用统一的 生成平台了。
调研了一下,autoconf和cmake的能力相对比较近。
但使用上Cmake较简单(只要用一个,autoconf有四个工具要装)
还是倾向于CMake。
因此要开始学习CMake的使用了。
2013-3-24 补充
autoaconf流程:
http://www.ibm.com/developerworks/cn/linux/l-makefile/
在使用过一段时间后,对于两种工具有更深入的了解。
autoconf的操作流程在不同环境的的部署安装中更为灵活。
但是在开发流程中,因为开发环境基本不会发生变化,autoconf的环境适应能力优势就没那么重要了。
原因分析,最终编译是使用的Makefile,这两个工具没有差别。
主要差别 在于Makefile的更新流程上。
在需要编译的文件发生变动的情况下,Makefile需要更新,但是开发环境没有变化。
autoconf: 需要重新运行configure文件,有时可能需要从aclocal,automake开始重新运行。而configure执行会相当耗时间,这时间主要耗在环境检查上。
同时,autoconf需要显示指定被编译的文件,有时会比较烦(可以用外部脚本实现自动)。
而Cmake 在Makefile生成后,再次执行时,会自动检测CMakeLists.txt的修改,自动更新。在不显示声明的情况下,不会自动进行环境检查。
因此从开发的效率角度上来说,CMake更好。