如何正确使用 cmakedefine 预处理器指令?

Mas*_*gol 0 c++ cmake

按照此说明,我创建一个headerconfig.h.in包含#cmakedefine USE_MYLIB. 在我的main.cpp文件中我添加了#include headerconfig.h.in. 而且,我也CMakeLists.txt为此设置了文件。但是,我得到了这个:

error: invalid preprocessing directive #cmakedefine
Run Code Online (Sandbox Code Playgroud)

我做错了什么?是否由于某种原因cmake无法读取#cmakedefine预处理器?

fgh*_*ghj 5

您不应包含“headerconfig.h.in”,而应包含“headerconfig.h”,
并在 cmake 中添加适当的 configure_file 调用。
这个想法是cmake处理headerconfig.h.in并生成headerconfig.h,
用实际值替换“#cmakedefine”,并使用headerconfig.h.in作为模板。