1. 文件組織方式
[code]|——mmseg.h
|——mmseg.cpp
|——mmseg_main.cpp
|——dict/
|——dict.cpp
|——dict.h
|——dict.txt
2. 根目錄下的CMakeLists.txt
[code]PROJECT(mmseg CXX) #項目名稱
#Cmake最低版本要求
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
#允許gdb調試
set(CMAKE_BUILD_TYPE "Debug")
set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
#添加C++11支持及其他選項
set(CMAKE_CXX_FLAGS "-std=c++0x ${CMAKE_CXX_FLAGS} -g -ftest-coverage -fprofile-arcs -Wno-deprecated")
#set(CMAKE_CXX_FLAGS "-std=c++0x ${CMAKE_CXX_FLAGS -g -ftest-coverage -fprofile-arcs"})
#添加dict子目錄
add_subdirectory(dict)
#當前目錄下所有源文件賦給DIR_SRCS
AUX_SOURCE_DIRECTORY(. DIR_SRCS)
#生成可執行文件
add_executable(mmseg ${DIR_SRCS})
#添加C++11編譯選項,但是只有CMAKE 3.1支持
#target_compile_features(mmseg PRIVATE cxx_range_for)
#添加鏈接庫
target_link_libraries(mmseg Dict)
3. Dict/目錄下CMakeLists.txt
[code]#查找當前目錄下所有源文件
#並將結果保存在DIR_LIB_SRCS變量中
aux_source_directory(. DIR_LIB_SRCS)
#生成鏈接庫
add_library(Dict ${DIR_LIB_SRCS})
4. cmake與automake比較
參見:/content/2025699.html
5. cmake其他相關用法
參見:
http://www.cppblog.com/Roger/archive/2011/11/17/160368.html
https://www.ibm.com/developerworks/cn/linux/l-cn-cmake/