假设在我的CMakeLists.txt中有:
check_function_exists(getopt HAVE_GETOPT)
configure_file(config.h.in config.h @ONLY)在config.h.in中,我有:
#cmakedefine HAVE_GETOPT @HAVE_GETOPT@
#cmakedefine STDLIB_HAS_GETOPT @HAVE_GETOPT@我希望能看到
#define HAVE_GETOPT 1
#define STDLIB_HAS_GETOPT 1在传球之后。相反,我得到了:
#define HAVE_GETOPT 1
/* #undef STDLIB_HAS_GETOPT */为什么行为上有区别?
备注:
发布于 2018-01-26 16:33:00
要获得所需的行为,不要使用cmakedefine,而是使用cmakedefine01 (注意后面的01)。在你的例子中:
#cmakedefine01 HAVE_GETOPT @HAVE_GETOPT@
#cmakedefine01 STDLIB_HAS_GETOPT @HAVE_GETOPT@文档:file.html
https://stackoverflow.com/questions/48464610
复制相似问题