使用 CMake target_precompile_headers 构建失败,并且对于包含的某些组合没有错误描述

问题描述 投票:0回答:0

错误是这样的:

mingw32-make[2]: *** [CMakeFiles\MyProject.dir\build.make:94: CMakeFiles/MyProject.dir/main.cpp.obj] Error 1

build.make 中的第 94 行如下所示:

C:\PROGRA~1\mingw64\bin\G__~1.EXE $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -Winvalid-pch -include MyProjectDirectory/build/CMakeFiles/MyProject.dir/cmake_pch.hxx -MD -MT CMakeFiles/MyProject.dir/main.cpp.obj -MF CMakeFiles\MyProject.dir\main.cpp.obj.d -o CMakeFiles\MyProject.dir\main.cpp.obj -c MyProjectDirectory\main.cpp

当我尝试构建一个在预编译头文件中包含某些文件集的项目时出现。

通过反复试验,我发现了两组导致此错误的包含。第一个是来自 Vulkan SDK 的单个文件 vulkan.hpp。第二个是 SDL 中的三个文件 SDL.h、Vulkan Bootstrapping 库中的 VkBootstrap.h 和标准库中的“文件系统”。我将 GCC 与 MinGW-w64 一起使用。如果我删除三个包含中的任何一个,则不会出现错误。

我试过用预编译的头文件和一个空的 main() 制作一个简单的项目。我不知道是什么原因造成的,我宁愿不必手动挖掘这些文件。

gcc cmake mingw-w64 precompiled-headers
© www.soinside.com 2019 - 2024. All rights reserved.