首页 > 解决方案 > 如何使用 Cmake 为 MSVC 生成预编译头文件

问题描述

我正在尝试使用target_precompiled_headers(). 我已经阅读了解释功能的答案,但我无法使其工作。标头不会添加到.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 */

CMake 生成的预编译头文件的输出

标签: c++visual-studiocmake

解决方案


推荐阅读