写在前面
之前做工程模块跨平台移植(从Windows 到Linux),还有工程模块SDK的接口开发,都用到了CMakeList,所以今天整理一下基本的用法以及常见问题,感兴趣或者有需要的小伙伴可以继续往下看。
- CMakeList是什么?作用?
- 如何使用CMakeList
- 如何编写CMakeList
- 使用CMakeList进行C++程序编译时的常见问题
CMakeList是什么?作用?
讲CMakeList之前,就必须提到CMake。 在维基百科里面,CMake的定义如下:
CMake是个一个开源的跨平台自动化建构系统,用来管理软件建置的程序,并不依赖于某特定编译器,并可支持多层目录、多个应用程序与多个库。 它用配置文件控制建构过程(build process)的方式和Unix的make相似,只是CMake的配置文件取名为CMakeLists.txt。CMake并不直接建构出最终的软件,而是产生标准的建构档(如Unix的Makefile或Windows Visual C++的projects/workspaces),然后再依一般的建构方式使用。
划重点:
CMake 跨平台自动化构建系统(不管是Windows,Linux,还是Mac os,具有平台无关性),不依赖特定的编译器(不管是gcc,clang还是msvc),可支持多层目录、多应用程序与多个库(