目录结构
kexin
-
src
— *.cpp—CMakelists.txt
-
include
-
main.cpp
-
CMakelists.txt
外层CMakelists.txt编写///
·# CMake 最低版本号要求
cmake_minimum_required(VERSION 3.7 FATAL_ERROR)
·# 项目信息
project(“kexin”)
·# include路径
include_directories(${PROJECT_SOURCE_DIR}/include)
·# 设置可执行文件生成路径
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/…/bin)
·# 生成debug版本
SET(CMAKE_BUILD_TYPE “debug”)
if (CMAKE_BUILD_TYPE STREQUAL debug)
add_definitions(-D_DEBUG)
endif ()
- SET(CMAKE_CXX_FLAGS_DEBUG “$ENV{CXXFLAGS} -O0 -Wall -g -ggdb -std=c++11”)
- SET(CMAKE_CXX_FLAGS_DEBUG “$ENV{CXXFLAGS} -O0 -Wall -g -ggdb -std=c++11 -pthread”)
- SET(CMAKE_CXX_FLAGS_DEBUG “$ENV{CXXFLAGS} -O0 -Wall -g -ggdb -std=gnu++11”)
- SET(CMAKE_CXX_FLAGS_RELEASE “$ENV{CXXFLAGS} -O3 -Wall -std=c++11”)
·# 查找当前目录下的所有源文件
·# 并将名称保存到 DIR_SRCS 变量
·# aux_source_directory(. DIR_SRCS)
·# 添加src子目录
add_subdirectory(src)
·# 指定生成目标
add_executable(mykexin main.cpp)
·# add_executable(kexin ${DIR_SRCS} src/main.cpp src/operator.cpp src/functor.cpp src/set_opp.cpp src/template.cpp)
target_link_libraries(mykexin src11)
内层CMakelists.txt编写///
·# 查找当前目录下的所有源文件
·# 并将名称保存到 DIR_LIB_SRCS 变量
aux_source_directory(. DIR_LIB_SRCS)
·# list(REMOVE_ITEM ${DIR_LIB_SRCS} factorty.cpp)
·# 生成链接库
add_library(src11 ${DIR_LIB_SRCS})
编译及调试///
cd kexin
rm -r build
mkdir build
cmake … && make
cd …/bin
gdb ./mykexin