cmake example
# 建立debug/release两目录,分别在其中执行cmake -DCMAKE_BUILD_TYPE=Debug(或Release),
# 需要编译不同版本时进入不同目录执行make即可
# ${projectname_SOURCE_DIR}表示根源文件目录,${ projectname _BINARY_DIR}表示根二进制文件目录
# SET(NAME, VALUE) 设置变量的值.
# CMAKE_C_COMPILER 指定C编译器,通常,CMake运行时能够自动检测C语言编译器。
# CMAKE_CXX_COMPILER 指定C++编译器
# CMAKE_C_FLAGS 指定编译C文件时编译选项,比如-g指定产生调试信息。
# CMAKE_CXX_FLAGS 指定编译C++文件时编译选项,比如-g指定产生调试信息。
# EXECUTABLE_OUTPUT_PATH 指定可执行文件存放的路径。
# LIBRARY_OUTPUT_PATH 指定库文件放置的路径
#指定项目名. 使用${HELLO_SOURCE_DIR}表示项目根目录
PROJECT(main)
#最低cmake版本
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
#指定头文件的搜索路径,相当于指定gcc的-I参数
include_directories(${HELLO_SOURCE_DIR}/.)
#动态链接库或静态链接库的搜索路径,相当于gcc的-L参数
link_directories (${HELLO_BINARY_DIR}/.)
#添加编译参数
add_definitions(-Wall -std=c99 -DDEBUG)
#生成静态连接库
ADD_LIBRARY(main_static STATIC test.c)
#生成动态连接库
ADD_LIBRARY(main_shared SHARED test.c)
#提取此目录下源代码文件到变量中(不含.H)
AUX_SOURCE_DIRECTORY(. DIR_SRCS)
#生成可执行文件.
ADD_EXECUTABLE(main ${DIR_SRCS} )
#添加生成依赖库,所有项目都会使用.
link_libraries( lib1 lib2 ...)
#生成可执行文件需要的动态库或静态库, 相同于指定-l参数
TARGET_LINK_LIBRARIES( main main_shared )
#添加子目录
ADD_SUBDIRECTORY( subsrc )

浙公网安备 33010602011771号