cmake基本用法

2021-08-09 23:31:59 字數 2434 閱讀 8648

我們編寫乙個c++單例類,使用cmake構建專案,主要是為了記錄一下cmake的基本用法。

首先專案資料夾為demoproject,我們建立乙個main.cpp作為我們的主檔案,建立乙個子資料夾singleton,在singleton中建立singleton.h和singleton.cpp作為我們的單例類。**如下,很簡單,就是獲取乙個單例然後呼叫它的函式:

main.cpp

#include

#include

.h>

intmain()

接下來singleton類的實現如下:

singleton.h

//

// created by yue on 17-10-24.

//#ifndef demoproject_getsingleton_h

#define demoproject_getsingleton_h

#include

class singleton

};#endif //demoproject_getsingleton_h

singleton.cpp

//

// created by yue on 17-10-24.

//#include

"singleton.h"

singleton* singleton::getinstance()

void singleton::print()

接下來開始編譯這個類,首先在singleton資料夾下建立build存放編譯後得到的靜態庫與動態庫,然後編寫cmakelists.txt如下:

cmake_minimum_required(version 3.0)    #最低需要的cmake版本

project(singleton) #工程名稱

set(cmake_cxx_standard 11) #c++11標準

set(source_files singleton.cpp) #設定變數source_files值為源檔名

set(cmake_cxx_flags "-std=c++11") #編譯選項,例項中用到nullptr,故需要加--std=c++11

add_library(singleton shared $) #生成動態庫

add_library(singleton_static static $) #生成靜態庫

set_target_properties(singleton_static properties output_name "singleton") #設定輸出靜態庫名稱

然後在build中執行cmake..和make得到動態庫和靜態庫。

最後編譯工程,在demoproject中建立cmakelists.txt,內容如下:

cmake_minimum_required(version 3.0)

project(demoproject)

set(cmake_cxx_standard 11)

set(source_files main.cpp)

set(cmake_cxx_flags "-llog4cplus -lpthread -pthread -std=c++11")

#向工程新增多個特定的標頭檔案搜尋路徑

include_directories(/home/yue/桌面/tianyan/demoproject/log4cplus/build/include

/home/yue/桌面/tianyan/demoproject/boost/boost_1_65_1/build/include

/home/yue/桌面/tianyan/demoproject/singleton)

#新增共享庫路徑

link_directories(/home/yue/桌面/tianyan/demoproject/log4cplus/build/lib

/home/yue/桌面/tianyan/demoproject/boost/boost_1_65_1/build/lib

/home/yue/桌面/tianyan/demoproject/singleton/build)

#生成可執行檔案

add_executable(demoproject $)

#為demoproject新增需要鏈結的共享庫

target_link_libraries(demoproject log4cplus boost_system boost_thread libsingleton.so)

同樣建立build,進入build執行cmake..和make,至此編譯結束。

更複雜的cmake用法參加《cmake實戰》,本文僅記錄一下最基本的用法。

CMake 基本用法

1.最基本的cmakelists 檔案 它將 main.c 編譯為 hello 的可執行檔案 project hello 專案名稱 set src list main.c 原始檔 add executable hello 可執行檔案cmake 是強烈推薦外部編譯的,內部編譯會生成一些無法自動刪除的中...

cmake基本用法

宣告最低版本型別 cmake minimum required version 2.8 建立乙個工程,工程名為hello project hello 設定編譯模式 編譯模式有 debug 和 release debug 為除錯模式,可進行斷點測試 release 為發行模式,速度更快 set cma...

cmake安裝 用法

選擇cmake x.x.x.tar.gz 找個目錄解壓縮 tar xzvf cmake x.x.x.tar.gz cd cmake x.x.x 依次執行 bootstrap make make install cmake 會預設安裝在 usr local bin 下面 檢查版本 cmake vers...