我正在尝试使用 target_precompiled_headers()
为我的项目生成预编译头。我已经阅读了解释该功能的 this 答案,但我无法使其正常工作。标头不会添加到 .cpp
文件中,而是生成四个 .hxx
文件。
我的代码:
# Collect files
set(ENGINE_WINDOW
# window
"src/window/window.h"
"src/window/window.cpp"
)
# Set filters
source_group("window" FILES ${ENGINE_WINDOW})
# Build static library
add_library(engine STATIC
${ENGINE_WINDOW}
)
# Precompile headers
target_precompile_headers(engine PRIVATE
<iostream>
)
# Specify include directories
target_include_directories(engine
PUBLIC ${PROJECT_SOURCE_DIR}/vendor/glad/include
)
# Find OpenGL
find_package(OpenGL)
# Link libraries to engine
target_link_libraries(engine
${OPENGL_gl_LIBRARY}
glad
glfw
)
/* generated by CMake */
#pragma system_header
#ifdef __cplusplus
#include <iostream>
#endif // __cplusplus
/* generated by CMake */
Output of CMake generated precompiled headers
编辑 这是一个最小的可重现案例: https://www.dropbox.com/s/jn1yknfv2ybxp4g/case.zip?dl=0