CMake使用总结,不断更新

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a740169405/article/details/82755458

使用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)

猜你喜欢

转载自blog.csdn.net/a740169405/article/details/82755458