跳转至

宏的使用

如在LLVM中的LLVM_ENABLE_CRASH_DUMPS

在CMake文件中使用if(LLVM_ENABLE_CRASH_DUMPS)endif() ,在,CPP中使用#if LLVM_ENABLE_CRASH_DUMPS

新增宏并使用

1. 在build命令中,通过 -DLLVM_ENABLE_CRASH_DUMPS="OFF"中加入对该选项的使用。

2. 如果是LLVM的,则在llvm/CMakeLists.txt中加入Option的默认值。

此步可省,最好不要省

Text Only
option(LLVM_ENABLE_CRASH_DUMPS "Turn on memory dumps on crashes. Currently only implemented on Windows." OFF)

如果设置正常的话,在build/CMakeCache.txt中应该能找到该变量的定义。

CMake
//Turn on memory dumps on crashes. Currently only implemented on
// Windows.
LLVM_ENABLE_CRASH_DUMPS:BOOL=OFF  

3. 在llvm/include/llvm/Config/config.h.cmake中加入

C++
/* Define to 1 to enable crash memory dumps, and to 0 otherwise. */
#cmakedefine01 LLVM_ENABLE_CRASH_DUMPS

该文件会生成build/include/llvm/Config/config.h文件,其中有以下内容:

C++
/* Define to 1 to enable crash memory dumps, and to 0 otherwise. */
#define LLVM_ENABLE_CRASH_DUMPS 0     // 如果设为ON,这里则会为1

4. 使用

4.1 C++中使用

包含上述config.h文件,就可以使用该宏了。

C++
#if (LLVM_ENABLE_CRASH_DUMPS)
...
#endif
4.2 cmake中使用
C++
if(LLVM_ENABLE_CRASH_DUMPS)

endif()

注意:每一处使用,都要设置成ON来进行设置,如果设置不到,就说明有问题。