我正在使用NetBeans来处理现有的CMake项目。
在CMakeLists.txt中有
set(DEFINES ${SRC}/defines.cmake)
所以当你在源代码中有时
#ifdef MY_OPT
//do stuff
#endif
这些在NetBeans中被屏蔽了,因为从来没有
#define MY_OPT
取而代之的是
-DMY_OPT
在中定义.cmake.
我如何告诉NetBeans查看这个文件(以及其他文件)?
set(DEFINES ${SRC}/defines.cmake)
这条线路的用途是什么?如果您的defines.cmake
包含一些预处理器设置,您最好使用include()
:
include("${SRC}/defines.cmake")
这个defines.cmake文件是否有可能通过预处理器设置defines?
是的,这就是add_definitions()的作用所在:
add_definitions(-DMY_OPT -DANOTHER_ONE)
综上所述:
CMakeLists.txt
# ...
include("${SRC}/defines.cmake")
# ...
定义.cmake
# Add defines
add_definitions(-DMY_OPT)
来源中的某个位置:
#ifdef MY_OPT
/* This is used now */
#else
/* MY_OPT is not defined - shouldn't happen now */
#endif
顺便说一下。,你也可以看看CCD_ 3。