CMake - - - updata later

CMakeLists.txt是层级包含关系,外层包含里层。

project(项目名称)

set(src    //src为变量,自定义
    ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
)
//生成可执行文件helloword
add_executable(helloword
    ${src}    //源文件
)
//从外部查找目录里来
link_directories(
    //${CMAKE_SOURCE_DIR}指的是从/build前面到工程的文件目录
    ${CMAKE_SOURCE_DIR}/build/samples/base64 
)你 
//工程内静态库的添加
target_link_libraries(
    link        //工程目录下面
    sample      //工程内,处在工程目录下
    “base64”    //表示从查找目录中得到
)
//工程外静态库的添加
include_directories(
    ${CMAKE_SOURCE_DIR}/samples/base64
)
//表示该CMake下有一个子目录也含有CMake(即有实体工程)。
add_subdirectory(里层文件夹名)    

//生成静态库
project(base64)
set(src
    ${CMAKE_CURRENT_SOURCE_DIR}/base64.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/base64.h
)
add_library(base64 STATIC
    ${src}
)

//生成动态库
project(base64_dynamic)    //base64_dynamic为工程子文件目录,即存放base64.cpp的文件夹名称
ADD_DEFINITIONS(-DBASE64_SHARED)
set(src
    ${CMAKE_CURRENT_SOURCE_DIR}/base64.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/base64.h
)
add_library(base64_dynamic SHARED
    ${src}
)

add_subdirectory( 里层文件夹名 )        //表示该CMake下有一个子目录也含有CMake(即有实体工程)。

Guess you like

Origin blog.csdn.net/qq_38844835/article/details/119011321