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

CMake+Visual Studio环境下启用预编译头后添加新源文件触发C1010编译错误的求助

CMake+Visual Studio环境下启用预编译头后添加新源文件触发C1010编译错误的求助

各位大佬好,我最近在CMake结合Visual Studio的项目里踩了个预编译头的坑,实在搞不定了来求助!

情况是这样的:我用target_precompile_headers(${APPLICATION_NAME} PRIVATE include/precompiled/pch.h)给项目启用了预编译头,刚生成项目的时候编译完全正常,但只要我往项目里加新的.cpp源文件,再编译就会立刻弹出C1010错误:

error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "path/to/cmake_pch.hxx"' to your source?

现在我唯一的临时解决办法就是每次加完新文件,就彻底删掉CMake生成的缓存和项目文件,重新跑一遍CMake生成流程——这效率太低了,肯定哪里有问题对吧?

我用的环境是Visual Studio 17.14.7,CMake最低版本要求3.20,项目C标准设的是C20。

下面是我的CMakeLists.txt关键代码段:

cmake_minimum_required(VERSION 3.20)
project(artisDX)
set(CMAKE_CXX_STANDARD 20)

message(STATUS "Configuring sources...")
set_property(GLOBAL PROPERTY USE_FOLDERS ON)

set(APPLICATION_NAME "artisDX")
file(GLOB_RECURSE ARTISDX_SOURCES "src/*.cpp")
file(GLOB_RECURSE ARTISDX_HEADERS "include/*.h")

add_executable(${APPLICATION_NAME} ${ARTISDX_SOURCES} ${ARTISDX_HEADERS})
target_precompile_headers(${APPLICATION_NAME} PRIVATE include/precompiled/pch.h)

我自己瞎猜是不是file(GLOB_RECURSE的锅?因为新文件加进来之后CMake没自动检测到,导致预编译头的配置没同步到新文件?但为什么重新生成项目就管用呢?有没有不用每次全量重新生成的解决办法呀?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 10:39:31