1、理解编译和cmake
- cmake编译的时候只需要cpp文件,.h文件存在的意义只是为了减少代码的重复利用。在预编译的时候.h文件的内容会被拷贝到cpp中取代#include<>。include后面接的是.h的路径,平时我们不用写路径是因为系统环境变量中已经有了。
但是“…/lesson1-1/add.h”这种写法其实特别不方便,日常中我们也没有延续这种写法,而是转而通过设置系统环境变量,使得include后面为一个库名字。Cmake为了方便这一写法,可以在编译时候指定文件需要查找的路径,其实类似于环境变量的作用。
- Cmake生成指定的项目,如:lib静态库。
目录如下:
在最下方的CMakeLists.txt(第一个CmakeList有点类似起到入口的作用)中添加如下代码,告诉cmake应该进入到
add_subdirectory(lesson2_1/add)文件中查看这个文件中的cmakelist。这就表明每一个目的都是只有一个add_library(add_static add.cpp)或者add_executable()这样的函数。其余的cmakelist文件仅仅用于传递信息。
cmake_minimum_required(VERSION 3.20)
project(cmake_study)
add_subdirectory(lesson2_1/add)
第二个cmakelist,用于描述目的。
add_library(add_static