我正在尝试使用以下命令在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_FLAGS扩展到我使用CMake的add_definitions()设置的标志。在add_custom_command()中编译的正确方法是什么?
答案 0 :(得分:1)
我不相信add_definitions()
将其论据添加到CMAKE_CXX_FLAGS
。事实上,据我所知,他们没有保存在任何地方(除了-D
或/D
以COMPILE_DEFINITIONS
开头的参数之外)。
解决问题的最简单方法是,无论何时调用add_definitions()
,还要手动将这些标记添加到CMAKE_CXX_FLAGS
。
要查看CMAKE_CXX_FLAGS
中的内容,您可以执行
message(STATUS ${CMAKE_CXX_FLAGS})
或检查构建目录中的CMakeCache.txt
(或通过ccmake
或cmake-gui
)。