clion共享庫開發及引用

2021-10-25 15:51:18 字數 1719 閱讀 3636

該部落格中路徑及名稱需要修改,直接使用不匹配,導致專案配置失敗

專案建立過程省略,標頭檔案在include中

cmake_minimum_required

(version 2.8.4)

project

(shared11)

set(cmake_cxx_standard 14

)set

(root_dir /leo-build/lib/loc/shared)

file

(make_directory $

/shared)

file

(make_directory $

/shared/lib)

file

(remove_recurse $

/shared/include)

file

(make_directory $

/shared/include)

#拷貝標頭檔案到指定目錄

file

(copy $

/include destination $

/shared/

)add_library

(shared11 shared library.cpp include/library.h)

#設定庫檔案的輸出目錄

set(library_output_path $

/lib)

#測試用例新增

#add_subdirectory(examples)

專案下建立examples

cmake_minimum_required

(version 2.8.4)

project

(leo_shared_test)

set(cmake_cxx_standard 14

)set

(root_dir /leo-build/lib/loc/shared)

include_directories

($/include)

link_directories

($/lib)

link_libraries

(leo_shared)

add_executable

(leo_shared_test main.cpp)

target_link_libraries

(leo_shared_test leo_shared)

cmake_minimum_required

(version 2.8.4)

project

(shared_test)

set(cmake_cxx_standard 14

)set

(root_dir /leo-build/lib/loc/shared)

# 標頭檔案路徑

include_directories

($/include)

# 庫檔案路徑

link_directories

($/lib)

link_libraries

(shared11)

add_executable

(shared_test main.cpp)

# 鏈結庫

target_link_libraries

(shared_test shared11)

共享庫的編譯及使用

靜態庫的 在編譯過程中已經被載入可執行程式,因此體積較大,一般以lib x.a形式存在。共享庫的 是在可執行程式執行時才載入記憶體的,在編譯過程中僅簡單的引用,因此 體積較小,一般以lib x.so的檔案形式存在。庫是別人寫好的現有的,成熟的,可以復用的 實際專案開發中,每個程式都要依賴很多基礎的底...

靜態庫與共享庫製作,及區別

1.庫是預編譯的目標檔案 object files 的集合,它們可以被鏈結程序式。靜態庫以後綴為 a 的特殊的存檔儲存,用於靜態鏈結。在linux環境中,使用ar命令建立靜態庫檔案,生成目標檔案.o,然後生成靜態庫.a。使用靜態庫生成的可執行檔案放在目標板中可以直接執行。2.共享庫,也是動態庫,是在...

Python增強賦值及共享引用注意事項

python中的增強賦值是從c語言中借鑑出來的,所以這些格式的用法大多和c一致,本身就是對表示式的簡寫,即二元表示式和賦值語句的結合,比如a b和a a b就是一致的,比如還有以下的增強賦值語句。a b a b a b a b a b a b a b a b a b a b a b a b 即增強賦...