You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CMake使用CTest时如何设置测试生成文件输出到全局target目录

CTest测试生成文件输出到根目录target的配置方案

你可以通过修改CMake的全局输出目录规则实现需求,操作步骤如下:

  • 在**项目根目录的CMakeLists.txt**中,add_subdirectory(test)配置之前添加全局输出目录规则,示例如下:
cmake_minimum_required(VERSION 3.10)
project(your_project)

# 单配置生成器(Makefile、Ninja等)通用全局输出配置
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/target)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/target)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/target)

# 适配多配置生成器(Visual Studio、Xcode等)的输出配置
foreach(CONFIG ${CMAKE_CONFIGURATION_TYPES})
    string(TOUPPER ${CONFIG} CONFIG_UPPER)
    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CONFIG_UPPER} ${CMAKE_SOURCE_DIR}/target)
    set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONFIG_UPPER} ${CMAKE_SOURCE_DIR}/target)
    set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CONFIG_UPPER} ${CMAKE_SOURCE_DIR}/target)
endforeach()

add_subdirectory(src)
add_subdirectory(test)
  • 检查test子目录下的CMakeLists.txt,删除给测试目标单独设置RUNTIME_OUTPUT_DIRECTORY属性的配置,避免覆盖全局规则。
  • 清理原有构建缓存目录,重新执行cmake生成、构建流程,所有测试生成文件就会输出到根目录的target文件夹下,CTest会自动识别新路径的测试程序,无需额外修改CTest配置。

内容的提问来源于stack exchange,提问作者Christopher Clark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 02:09:02