【C++學習】2.CMakeLists

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章