C++ CMake编译C++;自定义命令中的文件

C++ CMake编译C++;自定义命令中的文件,c++,cmake,C++,Cmake,我正在尝试使用以下命令在GCC中预编译头文件: ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/all.hpp.gch COMMAND ${CMAKE_CXX_COMPILER} ${CMAKE_CXX_FLAGS} -o ${CMAKE_BINARY_DIR}/all.hpp.gch ${CMAKE_CURRENT_SOURCE_DIR}/all.hpp DEPENDS ${CMAKE_CURRENT_SOU

我正在尝试使用以下命令在GCC中预编译头文件:

ADD_CUSTOM_COMMAND(
    OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/all.hpp.gch
    COMMAND ${CMAKE_CXX_COMPILER} ${CMAKE_CXX_FLAGS} -o ${CMAKE_BINARY_DIR}/all.hpp.gch ${CMAKE_CURRENT_SOURCE_DIR}/all.hpp
    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/all.hpp
    COMMENT "Generating precompiled headers"
    )

但是,我没有让CMAKE_CXX_标志扩展到使用CMAKE的add_definitions()设置的标志。在add_custom_command()中编译的正确方法是什么?

我不相信
add_definitions()
会将其参数添加到
CMAKE\u CXX\u标志中。事实上,据我所知,它们没有保存在任何地方(除了以
-D
/D
开头的参数,这些参数被添加到
编译定义中)

解决这一问题的最简单方法是,无论何时调用
add_definitions()
,都要手动将这些标志添加到
CMAKE_CXX_标志中

要随时查看
CMAKE\u CXX\u标志中的内容,您可以执行以下操作

message(STATUS ${CMAKE_CXX_FLAGS})
或者检查build目录中的
CMakeCache.txt
(或者通过
ccmake
cmakegui