《3》cmake中库的管理 (对.c 和 .h的管理)
通常在编写程序的时候,会有多个器件.
比如:
有led,
有按键,
有pwm,
有hello,
......
每个外设通常会有.c和.h两个文档.这样就组成了库.
led.c 和 led.h 就是led灯的库.
hello.c 和 hello.h 就是helloworld的库.
为了方便管理,这些.c和.h都会放到工程的一个文件夹里面.
cmake也是根据文件夹去管理的.
每个文件夹下都会包含一个cmake的程序 CMakeLists.txt.

整个工程的结构:


对CMakeLists.txt的解释:
顶层:

lib_hello文件夹下:

src_main文件夹下:


本工程中有一个库就是自己添加的 hello.c 和 hello.h

main.c


执行:
out_put 这个文件夹是用于存放运行cmake生成的文件的.
所以不用CMakeLists.txt文件,其他文件夹下就需要写CMakeLists.txt了.
进入 out_put 目录下,执行 : cmake ../ 就是运行顶层CMakeLists.txt ,cmake生成的文件都会落到out_put文件夹中,里面就有Makefile文件.
再执行make,生成可执行文件hello.
最后就可以运行hello文件了.

这里需要注意一个问题.
为了让目录更加整齐,使cmake过程中生成的文件都在out_put文件夹中,
所以我们在out_put目录下执行了cmake命令,
这里cmake会自动在out_put里面生成目录(就是文件夹),
自动生成两个文件夹: lib_hello文件夹 和 src_main文件夹.
所生成的库在lib_hello文件夹中.
可执行的hello文件就在src_main文件夹中.
工程结构变成了(运行cmake指令后,会多出红色部分):

这里会有一个很不爽的问题,
cmake帮助我们生成了两个文件夹用于存放生成的库文件和可执行文件.
但是lib_hello和src_main文件夹不是我们想要的名字,是不是可以更改呢?
答案是可以的.需要修改CMakeLists.txt.
为了结构的清晰,这个在下一节进行讲解.