使用C++11
CMake 3.1或者更高版本
set(CMAKE_CXX_STANDARD 11)
更低版本
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
生成可执行文件
set(SOURCE_FILES
main.cpp
xxx.cpp)
add_executable(project_name ${SOURCE_FILES})
这里的SOURCE_FILES
是源文件列表
生成动态链接库
# 需要打入动态链接库的源文件
set(SOURCE_FILES_FOR_SHARED
aaaa.cpp
bbbb.cpp)
# add_library(library-name SHARED ${SOURCE_FILES_FOR_SHARED})
注意,在MacOS生成的是.dylib文件,在Linux上生成的是.so文件,在windows中是.dll
连接三方库
首先设置动态链接库的目录,以及头文件目录
set(INC_DIR include)
set(LINK_DIR lib)
加入头文件目录、库所在目录、库名称
include_directories(${INC_DIR})
link_directories(${LINK_DIR})
link_libraries(library_name)
以上这两个应该在add_executable
之前设置好
在add_executable
之后,还需要在连接动态库
target_link_libraries(project_name library_name)
完成之后,cmake代码如下:
cmake_minimum_required(VERSION 3.6)
project(project_name)
set(CMAKE_CXX_STANDARD 11)
set(SOURCE_FILES main.cpp)
set(INC_DIR include)
set(LINK_DIR lib)
include_directories(${INC_DIR})
link_directories(${LINK_DIR})
link_libraries(library_name)
add_executable(project_name ${SOURCE_FILES})
target_link_libraries(project_name library_name)