項目構建工具 - CMake (5)庫文件的生成,外部庫的導入 - add_library


命令add_library 作用: 1)可以創建庫,2)也可以導入庫。


創建庫:


add_library(<name> [STATIC | SHARED | MODULE]
            [EXCLUDE_FROM_ALL]
            [source1] [source2 ...])
例如:
    add_library(hello_library STATIC  src/Hello.cpp)將會創建 libhello_library.a 名稱的靜態庫


導入外部庫:


add_library(<name> <SHARED|STATIC|MODULE|OBJECT|UNKNOWN> IMPORTED
            [GLOBAL])    
舉例:
    外部靜態lib
        add_library(baz STATIC IMPORTED)
        set_target_properties(baz PROPERTIES
             IMPORTED_LOCATION_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/libbaz.a
             IMPORTED_LOCATION_DEBUG   ${CMAKE_CURRENT_SOURCE_DIR}/libbazd.a)

        add_library(bar STATIC IMPORTED)
        set_target_properties(bar PROPERTIES
             IMPORTED_LOCATION_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/libbar.a
             IMPORTED_LOCATION_DEBUG   ${CMAKE_CURRENT_SOURCE_DIR}/libbard.a
             IMPORTED_LINK_INTERFACE_LIBRARIES baz) # <-- dependency is here

    外部動態lib
        add_library(bar SHARED IMPORTED)
        set_property(TARGET bar PROPERTY IMPORTED_LOCATION c:/path/to/bar.dll)
        set_property(TARGET bar PROPERTY IMPORTED_IMPLIB c:/path/to/bar.lib)
        add_executable(myexe src1.c src2.c)
        target_link_libraries(myexe bar)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章