接續上個範例
我們將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了。