《3》cmake中庫的管理 (對.c 和 .h的管理)
通常在編寫程序的時(shí)候,會有多個(gè)器件.
比如:
有l(wèi)ed,
有按鍵,
有pwm,
有hello,
......
每個(gè)外設(shè)通常會有.c和.h兩個(gè)文檔.這樣就組成了庫.
led.c? 和 led.h 就是led燈的庫.
hello.c 和 hello.h 就是helloworld的庫.
為了方便管理,這些.c和.h都會放到工程的一個(gè)文件夾里面.
cmake也是根據(jù)文件夾去管理的.
每個(gè)文件夾下都會包含一個(gè)cmake的程序 CMakeLists.txt.

整個(gè)工程的結(jié)構(gòu):


對CMakeLists.txt的解釋:
頂層:

lib_hello文件夾下:

src_main文件夾下:


本工程中有一個(gè)庫就是自己添加的 hello.c 和 hello.h

main.c


執(zhí)行:
out_put 這個(gè)文件夾是用于存放運(yùn)行cmake生成的文件的.
所以不用CMakeLists.txt文件,其他文件夾下就需要寫CMakeLists.txt了.
進(jìn)入 out_put 目錄下,執(zhí)行 : cmake ../? 就是運(yùn)行頂層CMakeLists.txt ,cmake生成的文件都會落到out_put文件夾中,里面就有Makefile文件.
再執(zhí)行make,生成可執(zhí)行文件hello.
最后就可以運(yùn)行hello文件了.

這里需要注意一個(gè)問題.
為了讓目錄更加整齊,使cmake過程中生成的文件都在out_put文件夾中,
所以我們在out_put目錄下執(zhí)行了cmake命令,
這里cmake會自動(dòng)在out_put里面生成目錄(就是文件夾),
自動(dòng)生成兩個(gè)文件夾: lib_hello文件夾 和 src_main文件夾.
所生成的庫在lib_hello文件夾中.
可執(zhí)行的hello文件就在src_main文件夾中.
工程結(jié)構(gòu)變成了(運(yùn)行cmake指令后,會多出紅色部分):

這里會有一個(gè)很不爽的問題,
cmake幫助我們生成了兩個(gè)文件夾用于存放生成的庫文件和可執(zhí)行文件.
但是lib_hello和src_main文件夾不是我們想要的名字,是不是可以更改呢?
答案是可以的.需要修改CMakeLists.txt.
為了結(jié)構(gòu)的清晰,這個(gè)在下一節(jié)進(jìn)行講解.