目录结构(目录名为untitled):
├── bin
├── build
├── CMakeLists.txt
├── lib
├── main.cpp
└── src
├── base.cpp
├── base.h
└── CMakeLists.txt
- build:生成Makefile及其他中间产物文件。
- lib:用于保存编译生成的库文件。
- bin:用于保存编译生成的可执行文件。
- src:用于保存源文件(此处是作为一个子模块库的形式)
untitled/CMakeLists.txt
# 指定运行此配置文件所需的 CMake 的最低版本
cmake_minimum_required(VERSION 2.8)
# 指定项目的名称,一般和项目的文件夹名称对应
project(untitled)
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
# 查找当前目录下的所有源文件,并将名称保存到 DIR_SRCS 变量
# 语法:aux_source_directory(<dir> <variable>)
aux_source_directory(. DIR_SRCS)
add_subdirectory(src)
# 将可执行文件名称设置为项目名称,这里的${PROJECT_NAME}是一个变量,其值为:untitled
# 使用 DIR_SRCS 中包含的源文件编译出可执行文件
#add_executable(${PROJECT_NAME} ${DIR_SRCS})
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries(${PROJECT_NAME} Base)
# 头文件目录
#INCLUDE_DIRECTORIES()
untitled/src/CMakeLists.txt
# 查找当前目录下的所有源文件
aux_source_directory(. DIR_LIB_SRCS)
# 生成链接库
add_library (Base ${DIR_LIB_SRCS})