关闭 cmake 编译所显示包含的头文件信息
2026/6/3 7:41:57 网站建设 项目流程

问题:

使用 cmake 编译工程时,显示项目所包含的头文件。

其列出的头文件所包含的内容经过递归检索。

如下:

12:40:29:454 >------ 重新生成 已启动: 项目: CMakeLists,配置: Debug ------ 12:40:30:087 [1/2] Cleaning additional files... 12:40:30:310 [2/2] Cleaning all built files... 12:40:30:310 Cleaning... 3 files. 12:40:30:555 [1/4] Automatic MOC and UIC for target current 12:40:30:673 [2/4] Building CXX object srcs\cpp\chapter999\current\CMakeFiles\current.dir\current_autogen\mocs_compilation.cpp.obj 12:40:30:718 [3/4] Building CXX object srcs\cpp\chapter999\current\CMakeFiles\current.dir\srcs\main.cpp.obj 12:40:30:718 注意: 包含文件: D:\userCodes\qt\ffmpegPractice\srcs\cpp\chapter999\current\srcs\main.h 12:40:30:718 注意: 包含文件: D:\userCodes\qt\ffmpegPractice\srcs\lib\ffmpeg_8.1.1_full_build_shared\include\libavutil/avutil.h 12:40:30:718 注意: 包含文件: D:\userCodes\qt\ffmpegPractice\srcs\lib\ffmpeg_8.1.1_full_build_shared\include\libavutil\common.h 12:40:30:718 注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\errno.h 12:40:30:718 注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\corecrt.h 12:40:30:719 注意: 包含文件: C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\14.51.36231\include\vcruntime.h 12:40:30:719 注意: 包含文件: C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\14.51.36231\include\sal.h 12:40:30:719 注意: 包含文件: C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\14.51.36231\include\concurrencysal.h 12:40:30:719 注意: 包含文件: C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\14.51.36231\include\vadefs.h 12:40:30:719 注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\inttypes.h 12:40:30:719 注意: 包含文件: C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\14.51.36231\include\stdint.h 12:40:30:719 注意: 包含文件: C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\14.51.36231\include\limits.h 12:40:30:719 注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\math.h 12:40:30:719 注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\corecrt_math.h 12:40:30:719 注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\stdio.h 12:40:30:719 注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\corecrt_wstdio.h 12:40:30:803 注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\corecrt_stdio_config.h 12:40:30:874 注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\stdlib.h 12:40:30:874 注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\corecrt_malloc.h 12:40:30:874 注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\corecrt_search.h 12:40:30:874 注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\stddef.h 12:40:30:875 注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\corecrt_wstdlib.h 12:40:30:875 注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\string.h 12:40:30:875 注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\corecrt_memory.h 12:40:30:875 注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\corecrt_memcpy_s.h 12:40:30:875 注意: 包含文件: C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\14.51.36231\include\vcruntime_string.h 12:40:30:875 注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\corecrt_wstring.h 12:40:30:875 注意: 包含文件: D:\userCodes\qt\ffmpegPractice\srcs\lib\ffmpeg_8.1.1_full_build_shared\include\libavutil\attributes.h 12:40:30:875 注意: 包含文件: D:\userCodes\qt\ffmpegPractice\srcs\lib\ffmpeg_8.1.1_full_build_shared\include\libavutil\error.h 12:40:30:875 注意: 包含文件: D:\userCodes\qt\ffmpegPractice\srcs\lib\ffmpeg_8.1.1_full_build_shared\include\libavutil\macros.h 12:40:30:876 注意: 包含文件: D:\userCodes\qt\ffmpegPractice\srcs\lib\ffmpeg_8.1.1_full_build_shared\include\libavutil/avconfig.h 12:40:30:876 注意: 包含文件: D:\userCodes\qt\ffmpegPractice\srcs\lib\ffmpeg_8.1.1_full_build_shared\include\libavutil\version.h 12:40:30:876 注意: 包含文件: D:\userCodes\qt\ffmpegPractice\srcs\lib\ffmpeg_8.1.1_full_build_shared\include\libavutil\mem.h 12:40:30:876 注意: 包含文件: D:\userCodes\qt\ffmpegPractice\srcs\lib\ffmpeg_8.1.1_full_build_shared\include\libavutil\rational.h 12:40:30:876 注意: 包含文件: D:\userCodes\qt\ffmpegPractice\srcs\lib\ffmpeg_8.1.1_full_build_shared\include\libavutil\mathematics.h 12:40:30:876 注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\math.h 12:40:30:876 注意: 包含文件: D:\userCodes\qt\ffmpegPractice\srcs\lib\ffmpeg_8.1.1_full_build_shared\include\libavutil\intfloat.h 12:40:30:876 注意: 包含文件: D:\userCodes\qt\ffmpegPractice\srcs\lib\ffmpeg_8.1.1_full_build_shared\include\libavutil\log.h 12:40:30:876 注意: 包含文件: C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\14.51.36231\include\stdarg.h 12:40:30:877 注意: 包含文件: D:\userCodes\qt\ffmpegPractice\srcs\lib\ffmpeg_8.1.1_full_build_shared\include\libavutil\pixfmt.h 12:40:31:052 [4/4] Linking CXX executable D:\userCodes\qt\ffmpegPractice\builder\Debug\x86_64_MSVC_bin\current\current.exe

原因:

使用了 showIncludes 选项。

选项链接:https://learn.microsoft.com/zh-cn/cpp/build/reference/showincludes-list-include-files?view=msvc-170

使用该选项会列出所有头文件信息。

解决方案:

cmake 添加函数

# # 取消显示包含头文件内容 function( un_show_include_info target_name ) # 关闭 /showIncludes if( MSVC ) message( STATUS "使用 MSVC 编译环境" ) # 检查是否存在编译选项 if( CMAKE_DEPFILE_FLAGS_CXX ) # 移除 /showIncludes 编译选项 list( REMOVE_ITEM CMAKE_DEPFILE_FLAGS_CXX "/showIncludes" ) string( REPLACE "/showIncludes" "" CMAKE_DEPFILE_FLAGS_CXX "${CMAKE_DEPFILE_FLAGS_CXX}" ) set( CMAKE_DEPFILE_FLAGS_CXX ${CMAKE_DEPFILE_FLAGS_CXX} PARENT_SCOPE ) endif( ) # 检查是否存在编译选项 if( CMAKE_DEPFILE_FLAGS_C ) # 移除 /showIncludes 编译选项 list( REMOVE_ITEM CMAKE_DEPFILE_FLAGS_C "/showIncludes" ) string( REPLACE "/showIncludes" "" CMAKE_DEPFILE_FLAGS_C "${CMAKE_DEPFILE_FLAGS_C}" ) set( CMAKE_DEPFILE_FLAGS_C ${CMAKE_DEPFILE_FLAGS_C} PARENT_SCOPE ) endif( ) # 获取目标的当前编译选项 get_target_property( TARGET_COMPILE_OPTIONS ${target_name} COMPILE_OPTIONS ) # 检查是否存在编译选项 if( TARGET_COMPILE_OPTIONS ) # 移除 /showIncludes 编译选项 list( REMOVE_ITEM TARGET_COMPILE_OPTIONS "/showIncludes" ) # 更新目标的编译选项 set_target_properties( ${target_name} PROPERTIES COMPILE_OPTIONS "${TARGET_COMPILE_OPTIONS}" ) endif( ) # 检查是否存在编译选项 if( CMAKE_CXX_SCANDEP_SOURCE ) # 移除 /showIncludes 编译选项 list( REMOVE_ITEM CMAKE_CXX_SCANDEP_SOURCE "/showIncludes" ) list( REMOVE_ITEM CMAKE_CXX_SCANDEP_SOURCE "-showIncludes" ) string( REPLACE "/showIncludes" "" CMAKE_CXX_SCANDEP_SOURCE "${CMAKE_CXX_SCANDEP_SOURCE}" ) string( REPLACE "-showIncludes" "" CMAKE_CXX_SCANDEP_SOURCE "${CMAKE_CXX_SCANDEP_SOURCE}" ) set( CMAKE_CXX_SCANDEP_SOURCE ${CMAKE_CXX_SCANDEP_SOURCE} PARENT_SCOPE ) endif( ) endif( ) endfunction( un_show_include_info )

调用

add_executable( ${prject_name} ${project_src_file} ) un_show_include_info( ${prject_name} )

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询