c++ - 如何使用 Cmake 为 MSVC 生成预编译头文件
问题描述
我正在尝试使用target_precompiled_headers()
. 我已经阅读了解释该功能的答案,但我无法使其工作。标头不会添加到.cpp
文件中,它会生成四个.hxx
文件。
我的代码:
- #CMakeLists.txt
# 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
)
- 生成的 cmake_pch.hxx (x4)
/* generated by CMake */
#pragma system_header
#ifdef __cplusplus
#include <iostream>
#endif // __cplusplus
- 生成 cmake_pch.cpp(为空)
/* generated by CMake */
解决方案
推荐阅读
- php - 为什么会话在网站的主目录中不起作用
- javascript - 我试图找到一种方法,所以当它低于某个 y 时,文本将变为红色(p5.js)
- postgresql - 如何在 talend 中处理特殊字符和几何数据类型
- wcf - 访问 BasicHttpBinding 端点失败并出现 System.ServiceModel.Security.SecurityAccessDeniedException:“访问被拒绝。”
- python - 使用 Python 从工具提示中获取数据
- html - 高度为 100% 的 Flex-grow 孩子在 Safari 中的高度为零
- c++ - 如何阅读以下主要代码?我不知道这个
- vim - 如何使用 Neovim 作为 Godot 的外部编辑器(Godot 可执行权限)
- flutter - 如何在 Flutter 中添加 Rive 动画
- python - 在Python中将邻接矩阵存储为图形对象