CMAKE使用鏈結第三方SO庫

2021-10-01 14:14:59 字數 820 閱讀 4470

cmake

命名變數

set(inc_dir /usr/local/include)

set(link_dir /usr/local/lib)

set(source_files main.cpp)

去**找標頭檔案 相當於gcc/clang 中的-i(i的大寫字母)引數

include_directories($)    # 用${}引用變數

去**找庫檔案 .so .dll .dylib 相當於gcc 中的-l引數

link_directories($)

要鏈結的庫檔案的名字 相當於gcc中的-l(小寫的l)引數

target_link_libraries(test)

只寫庫名就可以,就是lib***.so的中間***的部分

也可以寫成下面這樣

target_link_libraries(test)

cmake_minimum_required(version 2.8.12)

project (main)

add_executable(main main.c)

include_directories(/usr/include/hello)

# 靜態鏈結庫

# target_link_libraries(main libhello.a)

# 動態鏈結庫

set(link_dir /usr/local/lib)

link_directories($)

target_link_libraries(main libhello.so)

拷貝動態鏈結庫的時候需要注意符號鏈結是否還在

使用CMake匯入第三方庫

使用cmakelists.txt 中間需要匯入第三方的庫當我們需要生成自己的庫的時候,下面介紹如何匯入第三方庫的具體步驟。cmake的配置資訊寫在了cmakelist.txt檔案中。在cmakelist.txt檔案裡,我們首先定義兩個變數inc dir和link dir,用來表示標頭檔案路徑和庫的路...

使用waf鏈結第三方庫

example.db3 include assertion.h backup.h column.h database.h exception.h executemany.h sqlitecpp.h statement.h transaction.h utils.h variadicbind.h li...

整個多個第三方的so庫

本來做了個objectbox的demo,執行正常 還有乙個文字掃瞄識別,也執行正常。但是識別模組所用的so檔案是armeabi的,objectbox專案的不需要自己去匯入。問題來了,識別模組自能是armeabli的cpu架構,其他的不可以,所以demo是直接固定了安裝需要的cpu ndk但現在是要把...