hrs*_*l90 5 c c++ cmake visual-c++
我正在处理一个包含许多.cpp文件的项目vs2013,并为它们使用预编译的头文件。我正在使用 CMake 来构建我的项目。
但是我有一个.c文件(我们称之为xyz.c),我想为其禁用预编译头。
我尝试了几种方法,但是如果我为所有.cpp文件启用预编译头,它.c也会自动为该文件打开。这是我尝试过的:
set_source_files_properties (xyz.c
PROPERTIES COMPILE_FLAGS /Y-xyz.c )
Run Code Online (Sandbox Code Playgroud)
假设/Yu所有文件都打开了,我只是尝试关闭xyz.c.
如果有人知道任何方法,请告诉我。
Tar*_*aro 10
从 cmake 3.16 开始,设置/Y-编译器选项将不起作用。禁用单个文件的预编译头的正确方法如下:
set_source_files_properties(non-pch.cpp PROPERTIES SKIP_PRECOMPILE_HEADERS ON)
Run Code Online (Sandbox Code Playgroud)
文档: https://cmake.org/cmake/help/v3.16/prop_sf/SKIP_PRECOMPILE_HEADERS.html
(反正也没那么有用)
/Y-不接受争论。尝试:
set_source_files_properties(xyz.c
PROPERTIES COMPILE_FLAGS /Y-)
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用相反的方法并/Yu仅对文件使用,而不是对所有文件使用并仅对您的文件禁用它。鉴于您的文件列在变量中,并且是您的预编译头:.c/Yu.cpp.cppSOURCESmy_pch.h
set_source_files_properties(${SOURCES}
PROPERTIES COMPILE_FLAGS /Yumy_pch.h)
Run Code Online (Sandbox Code Playgroud)