支持 gdb
让 CMake 支持 gdb 的设置也很容易,只需要指定 Debug 模式下开启 -g 选项:
设置(CMAKE_BUILD_TYPE“调试”)
设置(CMAKE_CXX_FLAGS_DEBUG“$ENV{CXXFLAGS} -O0 -Wall -g -ggdb”)
设置(CMAKE_CXX_FLAGS_RELEASE“$ENV{CXXFLAGS} -O3 -Wall”)
之后可以直接对生成的程序使用 gdb 来调试。
本节对应的源代码所在目录:Demo6。
有时候可能要对系统环境做点检查,例如要使用一个平台相关的特性的时候。在这个例子中,我们检查系统是否自带 pow 函数。如果带有 pow 函数,就使用它;否则使用我们定义的 power 函数。
添加 CheckFunctionExists 宏
首先在顶层 CMakeLists 文件中添加 CheckFunctionExists.cmake 宏,并调用 check_function_exists 命令测试链接器是否能够在链接阶段找到 pow 函数。
# 检查系统是否支持 pow 函数
include (${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake)
check_function_exists (pow HAVE_POW)
将上面这段代码放在 configure_file 命令前。
预定义相关宏变量
接下来修改 config.h.in 文件,预定义相关的宏变量。
// 平台是否提供pow功能?
#cmake定义HAVE_POW
在代码中使用宏和函数
最后一步是修改 main.cc ,在代码中使用宏和函数:
#ifdef HAVE_POW
printf("现在我们使用标准库。\n");
双结果 = pow(底数, 指数);
#else
printf("现在我们使用我们自己的数学库。\n");
双结果 = 幂(底数,指数);
#万一
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
添加我为好友,拉您入交流群!
请使用微信扫一扫!