CMake 编译不同模式不同平台库进行设置

该文介绍如何使用CMake针对Windows和Linux平台,以及不同的编译模式(Debug和Release),进行特定设置。当构建项目时,根据不同条件如MSVC或MinGW,CMake会打印相应的调试或释放信息,并将生成的库文件放置在与编译类型和操作系统对应的目录下。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CMake 编译不同模式不同平台库进行设置

if (WIN32)
    if(CMAKE_BUILD_TYPE AND (CMAKE_BUILD_TYPE STREQUAL "Debug"))
        if(MSVC)
            message("@@@@@@@@@@ MSVC Debug")

        else()
            message("@@@@@@@@@@ Mingw Debug")

        endif()

    elseif(CMAKE_BUILD_TYPE AND (CMAKE_BUILD_TYPE STREQUAL "Release"))
        if(MSVC)
            message("@@@@@@@@@@ MSVC  Release")

        else()
            message("@@@@@@@@@@ Mingw Release")

        endif()
    else()
        MESSAGE(STATUS "else:${CMAKE_BUILD_TYPE}")
        MESSAGE(STATUS "else:${CMAKE_C_FLAGS_RELEASE}")
    endif()
elseif(UNIX)

elseif(IOS)

endif()
  • 不同库生成在不同目录下:
set(CURRENT_APPEND_DIR ${CMAKE_BUILD_TYPE}/${CMAKE_SYSTEM_NAME}/${CMAKE_CXX_COMPILER_ID})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib/${CURRENT_APPEND_DIR})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib/${CURRENT_APPEND_DIR})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib/${CURRENT_APPEND_DIR})
link_directories(${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/../lib/${CURRENT_APPEND_DIR}  ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/../plugins/)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值