第一次使用cmake是在刚接触VTK的时候,需要自己从源码编译出可供调用的VTK库文件。之后使用OpenCV再次用到了cmake,不过一直都是按着网上的教程一步步操作。用了几次之后才开始对其中的步骤有所理解,明白为什么要这么做。因为很多开源的库都需要进行类似的编译过程以适应不同的开发需求和开发环境,所以在此进行简单的总结,以备将来参考。
整个过程的基本思路如下:
1.下载开源库的源码。不管是下载的压缩包还是直接用SVN之类的工具,最终得到的是一个包含了很多文件和文件夹的源代码集合。一般来说这些文件是没法直接供编程时调用的。
2.使用Cmake配置库。主要目的是根据实际需要勾选或取消库的某一些特性,比如OpenCV库是否添加QT的支持,VTK的库是否生成Java的wrapping等。Configure的过程结束确认没有错误之后就可以Generate出来相应的工程文件。我们就是用这些工程文件去进行实际的编译。实际使用的编译器需要在Configure的第一步指定好,比如Windows系统下常用的Visual Studio编译器以及MinGW。
3.编译库。根据第二步操作里选择的编译器不同,第二步完成后生成的工程文件也就不一样。比如选择了Visual Studio的编译器,生成的工程文件目录下面就会有Visual Studio的项目文件,直接使用Visual Studio打开进行编译就可以了。如果选择了MinGW,生成的目录下面会有MinGW的makefile,可以在命令行窗口下使用mingw32-make命令进行编译(下图1),mingw32-make install命令进行安装(下图2)。