該部落格中路徑及名稱需要修改,直接使用不匹配,導致專案配置失敗
專案建立過程省略,標頭檔案在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 即增強賦...