CMakeLists.txt是cmake 根據內置的規則和語法來自動生成相關的makefile 文件進行編譯,同時還支持靜態庫和動態庫的構建.
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
cmake所要求的最低版本,低於此版本會終止編譯PROJECT(hello_world)
自定義一個工程名稱,之後的內容都可以使用,自動引入兩個變量PROJECT_BINARY_DIR
-二進制生成目錄,也就是build
目錄 和PROJECT_SOURCE_DIR
-源碼目錄MESSAGE(STATUS "PROJECT: SERVER")
MESSAGE(STATUS "Project Directory: ${PROJECT_SOURCE_DIR}")
STATUS
就目前來看,就是輸出’- -'用的,
編譯時在屏幕輸出信息如下,PROJECT_SOURCE_DIR
無需定義
SET(CMAKE_BUILD_TYPE DEBUG)
設置編譯模式,還有release
模式,debug 會生成相關調試信息,release不會生成調試信息SET(CMAKE_CXX_FLAGES_DEBUG "-g -Wall")
設置編譯器類型
CMAKE_C_FLAGS_DEBUG ---- C 編譯器
CMAKE_CXX_FLAGS_DEBUG ---- C++ 編譯器SET(ABC abc)
創建ABC
變量,並賦值爲abc
include_directories( ** )
添加頭文件
搜索目錄link_directories(**)
添加庫文件
搜索目錄add_executable(hello main.cpp)
告訴工程,生成一個可執行文件hello
target_link_libraries(hello 庫名1,庫名2,...)
可執行文件鏈接到庫- 確定編譯語言
set(CMAKE_CXX_STANDARD 11)
or
add_definitions(-std=c++11)
add_library(hello SHARED main.cpp)
生成共享庫文件libhello