问题描述
我一直在尝试将我的代码组织到子文件夹中,并且自从我上次提交以来,我一直小心翼翼地不做任何额外的事情。我目前收到一堆 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()
解决方法
所以替换下面的代码...
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()
与
if (MSVC)
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT Minecraft)
target_precompile_headers(Minecraft PRIVATE "src/pch.h")
target_compile_options(Minecraft PRIVATE "/W4" "/MP" "/std:c++17")
endif()
解决了问题!