标签归档:cmake

CMake设置MSVC工程MT/MTd/MD/MDd

在Windows下用CMake开发可执行程度,都会遇到的问题

cmake_minimum_required(VERSION 3.27)
 
# 设置策略CMP0091为NEW,新策略
if (POLICY CMP0091)
    cmake_policy(SET CMP0091 NEW)
endif (POLICY CMP0091)
 
project(Test)
 
# cxx标准
set(CMAKE_CXX_STANDARD 11)
 
add_executable(
        ${PROJECT_NAME}
        main.cpp
)

# 设置MT/MTd
set_property(TARGET ${PROJECT_NAME} PROPERTY
        MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
        
# 链接到user32库
#target_link_libraries(${PROJECT_NAME} user32)

CMake笔记之GLOB和GLOB_RECURSE的使用方法

1.GLOB

帮助开发收集要编译的源文件,就是模糊匹配到文件后,把所有文件放到一个变量里面

cmake_minimum_required(VERSION 3.10)
project(MyProject)

# 设置变量包含所有源文件
file(GLOB MY_PROJECT_SOURCES "src/*.cpp")

# 将源文件编译成可执行文件
add_executable(${PROJECT_NAME} ${SOURCE_SRC})

这样所有的src下面的cpp文件都放进了 MY_PROJECT_SOURCES 这个变量中,后面可以直接使用这个编译进行可执行文件的编译

2.GLOB_RECURSE

GLOB会递归的寻找文件夹下面的文件,GLOB_RECURSE就不会就这点区别