当前位置: 代码迷 >> 综合 >> 【C++学习】2.CMakeLists
  详细解决方案

【C++学习】2.CMakeLists

热度:54   发布时间:2023-10-27 02:53:01.0

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