接續上個範例
我們將add2這個函數從demo中題取出來,建立一個math library,讓其他人使用。
提供header file跟library,header file放在include目錄底下,source code放在lib底下>
我們的header file: MyMath.h
| 1 | 
 | 
實作add2.c
| 1 | 
 | 
重點的CMakeLists.txt部分
| 1 | ADD_LIBRARY(mymath STATIC add2.c) | 
重新改寫我們的demo
| 1 | 
 | 
以及CMakeLists.txt
| 1 | ADD_EXECUTABLE(demo demo.c) | 
目錄下的CMakeLists.txt也要跟著更新
| 1 | PROJECT(CMakeDemo C) | 
在城市規模小的時候,直接寫Makefile是個比較快的解決方案,不過當規模更大,以及要跨平台的時候,CMake的優勢就出現了。
如何使用編譯參數
上面這個範例,我們是使用static library,我們假設要在編譯的時候選擇是要用static library或是shared library,該怎麼進行。
重新改寫 lib/CMakeLists.txt
| 1 | if (ENABLE_SHAREDLIB) | 
之後我們在產生Makefile之前下以下參數就能選擇了
| 1 | $ cmake .. -DENABLE_SHAREDLIB=TRUE | 
這樣就能選擇編譯成shared librarry了。