做C/C++的人都应该经历过,以往拿到一个开源代码,想自己编译出来,总会因为VS的版本不同而出现各种各样的问题,使编译过程困难重重,更多时候就会放弃使用它了。而这个过程反过来,也会使用一些开源项目难于推广。
另外,基于我的跨平台开发经历,更是一个灾难。刚毕业那会,我有一个项目是Windows下开发,但服务器是Ubuntu的,当初我是在windows下的VS2015开发,调试得没问题了,还要上传到服务器,再根据其环境写各种makefile
两年前吧,接触到OpenCV,看到里面竟然是使用CMakeLists.txt这个脚本,通过CMake程序就可以生成相应平台的编译工程了,简直太方便了。
helloworld |--CMakeLists.txt |--helloworld.cpp
1 # CMake 最低版本号要求 2 cmake_minimum_required(VERSION 3.0) 3 4 # 指定项目名称,其实就是给变量PROJECT_NAME赋值 5 project(HelloWorld) 6 7 # 查找指定目录下的所有源文件 并存放到指定变量名SRC中 8 aux_source_directory(. SRC) 9 10 # 指定生成目标 11 add_executable(${PROJECT_NAME} ${SRC}
因为现在的工作基本上是windows下的VS开发,所以我对于源文件与头文件的编写都会用CMake生成后,在VS里面再编写。
在选择【Specify the generator for this project】时,要注意一下所选的编译平台是32位还是64位的,若需要两种平台的则要创建两个解决方案的。
此纯属个人学习笔记,有错可以指正!
原文:https://www.cnblogs.com/dilex/p/11074589.html