cmake 生成 動態庫

2022-08-18 07:18:12 字數 1207 閱讀 3647

一, 目錄結構

├── cmakelists.txt

├── include

│      └── shared

│              └── hello.h

└── src

├── hello.cpp

└── main.cpp

* link:cmakelists.txt - contains the cmake commands you wish to run

* link:include/shared/hello.h - the header file to include

* link:src/hello.cpp - a source file to compile

* link:src/main.cpp - the source file with main

二,cmake基本指令碼

cmake_minimum_required(version 3.5)

project(hello_library)

# 根據庫檔案**生成動態庫

add_library(hello_library shared src/hello.cpp)

# 建立動態庫別名

add_library(hello::library alias hello_library)

# 包含指定標頭檔案所在的目錄

target_include_directories(hello_library public  

$/include)

# 建立可執行程式

add_executable(hello_binary 

src/main.cpp

)# 鏈結動態庫檔案

target_link_libraries( hello_binary private hello::library)

三,擴充套件分析

1.  add_library(hello_library shared  src/hello.cpp)將會建立 libhello_library.so 名稱的動態庫。

2. 目標別名

add_library(hello::library alias hello_library)

hello::library是hello_library的別名, 別名允許使用別名來鏈結對應的庫檔案。

Linux系統下cmake生成動態庫 靜態庫。

動態庫是在程式的執行階段加入到源 的,在程式的編譯鏈結階段只會生成乙個小小的表,用來記錄呼叫動態庫的位址。形象地講,可執行 和動態庫各是各的,是分開的。只有在程式開始執行後,程式才會去找動態庫,然後一起工作。由動態庫的工作原理可知,程式與動態庫的關聯性極強。當程式執行時必須有動態庫存在。如果執行環境...

cmake 新增opencv 動態庫

cmakelists.txt 新增opencv 動態庫 cmake minimum required version 2.8 專案資訊 project server set cmake c compiler g add compile options std c 11 查詢當前目錄下的所有原始檔 並...

CMake設定生成vs工程的動態庫輸出路徑

在網上搜了很多的資料,發現cmake不能設定乙個動態庫工程的輸出目錄和中間目錄,難道除了vc之外其它編譯器如gcc中沒有這樣的選項?設定dll或exe的輸出目錄可以這樣 set target properties core properties runtime output directory bi...