CMakelist编写规则:层级结构,和目录一样往下,只需要考虑当前目录及子目录编写。
cmake_minimum_required(VERSION 2.6) #版本要求
project(muduo C CXX) #项目名称
message(STATUS "found cares") #打印信息
SET(SOURCE ${PROJECT_SOURCE_DIR}/src/hello.cpp) #将hello.cpp 赋值给SOURCE 变量
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include) #指定头文件目录
LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/lib) #指定链接库文件目录
ADD_EXECUTABLE(hello ${SOURCE}) #将hello.cpp生成可执行文件hello
TARGET_LINK_LIBRARIES(hello myprint) #指定hello 链接库myprint
Add_library(common STATIC util.cpp) #生成静态库common
Add_library(common SHARED util.cpp) #生成动态库common
aux_source_directory(utils UTILS_SRC) #将utils路径下的所有源文件存在UTILS_SRC变量中
aux_source_directory(. SRC_LIST) # 搜索当前目录下的所有.cpp文件,存到SRC_LIST变量中
add_library(demo ${SRC_LIST})
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) #执行文件输出路径,赋值语句
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib) #库文件输出路径
target_link_libraries(demo libface.a) # 链接libface.a
target_link_libraries(demo libface.so) # 链接libface.so
# PROJECT_SOURCE_DIR:工程的根目录
# PROJECT_BINARY_DIR:运行cmake命令的目录,通常是 ${PROJECT_SOURCE_DIR}/build