欢迎光临散文网 会员登陆 & 注册

《3》cmake中库的管理 (对.c 和 .h的管理)

2022-08-06 13:18 作者:GXTon_阿通  | 我要投稿

通常在编写程序的时候,会有多个器件.

比如:

有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.

为了结构的清晰,这个在下一节进行讲解.


《3》cmake中库的管理 (对.c 和 .h的管理)的评论 (共 条)

分享到微博请遵守国家法律