详细解决方案
【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