我在C/C++上编写代码,并使用(GNU)Makefile编译代码.我可以用CMake做同样的事情,并得到一个MakeFile.然而,使用Makefile和CMake编译代码有什么区别?
我在C/C++上编写代码,并使用(GNU)Makefile编译代码.我可以用CMake做同样的事情,并得到一个MakeFile.然而,使用Makefile和CMake编译代码有什么区别?
Make(或者更确切地说是Makefile)是一个构建系统——它驱动编译器和其他构建工具来构建代码.
CMake是建筑系统的发电机.它可以生成Makefile,它可以生成忍者构建文件,它可以生成KDEve或Xcode项目,它可以生成Visual Studio解决方案.从相同的起点,相同的CMakeLists.txt文件.因此,如果你有一个独立于平台的项目,CMake是一种让它也独立于构建系统的方法.
如果Windows开发人员习惯于Visual Studio和Unix开发人员对GNU Make深信不疑,那么CMake就是一个不错的 Select .
如果您希望您的项目是多平台的或广泛可用的,我总是推荐使用CMake(或其他构建系统生成器,但CMake是我个人的偏好).CMake本身也提供了一些不错的功能,比如依赖检测、库接口管理,或者与CTest、CDash和CPack的集成.
使用buildsystem生成器可以让您的项目更加经得起future 的考验.即使你现在是GNU Make,如果你后来决定扩展到其他平台(无论是Windows还是嵌入式平台),或者只是想使用IDE呢?