1. 程式人生 > >Cmake 自學筆記(linux)(四)

Cmake 自學筆記(linux)(四)

前言:觀察資料夾下的檔案,發現原始碼(main .h .c)放在同一個路徑下,還是不太正規,怎麼辦呢?分開放唄…….當然,分開的這個過程由我們自己完成

我們期望的結構:
這裡寫圖片描述

即main.c在src下(src=source code),標頭檔案和他的.c在庫資料夾下。並且我們發現cmakelists多達三個,都需要我們去自己寫,但是並不困難。

1.在主資料夾下新建src,libhello,build三個資料夾,以及一個頂層cmakelists.txt.然後在src中新建一個main和一個cmakelists,在libhello中新建一個hello.c和一個hello.h,還有一個cmakelists。

2.修改頂層cmakelists的內容

這裡寫圖片描述

說明:使用 add_subdirectory 告訴cmake去子目錄尋找新的CMakeList.txt 子檔案,括號中的內容就是子cmakelists所在的資料夾

3.修改src中的cmakelists的內容:

這裡寫圖片描述

說明:include_directories,用來指明標頭檔案所在的路徑。注意,PROJECT_SOURCE_DIR必須大寫。另外,說下我個人對./的理解,./我理解為該cmakelists檔案所在的當前路徑,而不是這個專案的根目錄。而專案的根目錄是${PROJECT_SOURCE_DIR}.

4.修改libhello中的cmakelists的內容:

這裡寫圖片描述

很簡單,就是一個新增庫的命令。

5.全部完成後,在build資料夾下執行cmake.. ,然後執行make,此時注意生成的可執行檔案不再是在build下,而是在build裡面的src中。因為build中的目錄預設和原始碼中結構一樣,原始碼中的目錄是src和libhello,所以在build中生成了src和libhello。