提要slam14讲关于cmake的学习记录基础相比于g编译cmake会帮忙解决代码依赖问题库静态库.a为后缀动态库.so为后缀指令格式命令名参数列表cmake_minimum_required(VERSION 3.10 #版本要求 project(Myproject) #工程名 add_executable(Myapp main.cpp util.cpp) #可执行文件 add_library(Mylib STATIC library.cpp) #库文件静态STATIC动态SHARED target_link_libraries(Myapp PRIVATE Mylib) #连接库到目标PUBLIC(Myapp和其上层目标)INTERFACE(所有Myapp的上层目标)设置变量setset(SOURCES main.cpp util.cpp ) add_executable(Myapp ${SOURCES})这里取值用${},if(SOURCES)用法不一样有了设置变量可以进行为目标指定头文件target_include_directories(Myapp PRIVATE ${PROJECT_SOURCE_DIR}/include)这里include是用来放置.h/.hpp等文件的目录最后Myapp的安装位置install(TARFETS Myapp RUNTIME DESTINATION bin)bin是linux下的目录构建命令mkdir build cd build cmake .. make(cmake --build .)#linux下可以用make编译cmake更通用 cmake --install . #安装可选2.高级特性