【发布时间】:2021-02-18 18:33:03
【问题描述】:
我一直在尝试将我的代码组织到子文件夹中,并且自从我上次提交以来,我一直小心翼翼地不做任何额外的事情。我目前收到一堆C1010 错误说:
unexpected end of file while looking for precompiled header. Did you forget to add #include "pch.h" to your source?
每个文件都有相应的预编译头文件的相对包含路径。如果我尝试“去相对化”包含的预编译头文件,那么 Intellisense 就会开始抛出错误。
我怀疑我的 cmake 代码在这里可能有问题.. 特别是本节:...
if (MSVC)
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT Minecraft)
set_target_properties(Minecraft PROPERTIES COMPILE_FLAGS "/Yupch.h")
set_source_files_properties("src/pch.cpp" PROPERTIES COMPILE_FLAGS "/Ycpch.h")
target_compile_options(Minecraft PRIVATE "/W4" "/MP" "/std:c++17")
endif()
【问题讨论】:
-
每个
*.cpp文件是否都以#include "pch.h"开头? -
@RichardCritten 每个
.cpp文件都以#include "pch.h"的适当相对版本开头 -
启用预编译头文件后,每个源文件都应将
#include "pch.h"作为第一个非空非注释行 -
@ConnorMoody 屏幕截图中提到的文件(请以文本形式发布错误消息)没有
#include路径必须与编译器指令中的名称匹配,我不认为相对路径会工作的。 -
"... relative..." 这是指令与#include 不匹配的问题
标签: c++ visual-studio visual-c++ cmake pch