如何配置CMake自动在执行./main前添加time命令以统计程序耗时?
解决CMake自动添加time命令运行程序的问题
方法1:自定义带time的运行目标
在你的CMakeLists.txt中添加以下配置,创建一个专门的运行目标来自动统计耗时:
# 假设你的可执行文件目标名为main add_executable(main ${你的源文件列表}) # 自定义运行目标,自动执行time + 程序 + 测试视频参数 add_custom_target(run_with_time COMMAND time $<TARGET_FILE:main> ../Media/test_video.mp4 DEPENDS main WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "运行程序并统计耗时..." )
配置完成后,在CLion中直接执行run_with_time目标,或在终端执行make run_with_time(Makefile生成器)/ninja run_with_time(Ninja生成器),就能自动触发带time统计的程序运行。
方法2:修改CLion默认运行配置的执行命令
如果希望CLion默认的"Run main"按钮也自动带上time统计,可以通过设置目标的运行包装器实现:
# MacOS的time是shell内置命令,需要通过bash -c来调用 set_target_properties(main PROPERTIES RULE_LAUNCH_EXECUTABLE "bash -c 'time $0 $@'" )
之后点击CLion的运行按钮启动main时,底层会自动用time命令包裹程序执行,终端输出会直接包含耗时数据。
关键说明
- 你之前尝试的
set(CMAKE_ARGS ...)方法不适用,CMAKE_ARGS是传递给外部子项目的参数,并非用于配置当前项目的运行命令; - MacOS的
time属于shell内置工具,直接作为独立命令调用会有解析问题,用bash -c包裹是更可靠的方式。
内容的提问来源于stack exchange,提问作者bryc_wall
相关产品推荐
相关产品推荐

