使用cmake编译好一个库后,生成的sln工程一般会包含如下几个项目:
- ALL_BUILD:生成所有项目,但不包括install和单元测试等
- INSTALL:把cmake脚本里install指令(如果没有install指令,则不会产生这个子工程)指定的东西安装到CMAKE_INSTALL_DIR里面(cmake界面上可以设置该路径),如果install指令指定了路径,则CMAKE_INSTALL_DIR失效。
- ZERO_CHECK:首先执行的构建目标,会检查生成出的VS项目相比CMakeLists.txt是否过期,如果过期会首先重新生成VS项目。所有其它目标都会依赖这个ZERO_CHECK,于是构建别的目标都会先走一下ZERO_CHECK,保证了所生成项目的即时性。当然,你也可以手工跑这个目标。
至于ALL_BUILD
为什么可以生成所有项目,以及它到底会生成哪些项目。可以通过展开ALL_BUILD
项目,然后查看它的引用,引用里包含的所有项目都会在生成ALL_BUILD
的时候自动生成。ALL_BUILD
生成成功后,再右键INSTALL
项目,选择设为启动项目,然后点击生成。成功后就可以在你设定的路径下找到输出的文件。也可以中“生成——批生成”选择ALL_BUILD和INSTALL项目一起生成。