Linux下CMake简明教程(六)动态库和静态库的编译控制
生活随笔
收集整理的這篇文章主要介紹了
Linux下CMake简明教程(六)动态库和静态库的编译控制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
代碼在git
有時只需要編譯出動態庫和靜態庫,然后等著讓其它程序去使用。讓我們看下這種情況該如何使用cmake。首先按照如下重新組織文件,只留下testFunc.h和TestFunc.c
我們會在build目錄下運行cmake,并把生成的庫文件存放到lib目錄下。
CMakeLists.txt內容如下,
- add_library: 生成動態庫或靜態庫(第1個參數指定庫的名字;第2個參數決定是動態還是靜態,如果沒有就默認靜態;第3個參數指定生成庫的源文件)
cmake之 ADD_LIBRARY()
SHARED,動態庫STATIC,靜態庫MODULE,在使用 dyld 的系統有效,如果不支持 dyld,則被當作 SHARED 對待。-
set_target_properties: 設置最終生成的庫的名稱,還有其它功能,如設置庫的版本號等等
-
LIBRARY_OUTPUT_PATH: 庫文件的默認輸出路徑,這里設置為工程目錄下的lib目錄
前面使用set_target_properties重新定義了庫的輸出名稱,如果不使用set_target_properties也可以,那么庫的名稱就是add_library里定義的名稱,只是連續2次使用add_library指定庫名稱時(第一個參數),這個名稱不能相同,而set_target_properties可以把名稱設置為相同,只是最終生成的庫文件后綴不同(一個是.so,一個是.a),這樣相對來說會好看點。 -
.a是靜態庫
-
.o 是動態庫
總結
以上是生活随笔為你收集整理的Linux下CMake简明教程(六)动态库和静态库的编译控制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux下CMake简明教程(五)正规
- 下一篇: Linux下CMake简明教程(七)对库