cmake开启优化的同时启用assert

阅读量: searchstar 2022-05-03 15:51:26
Categories: Tags:

cmake在将CMAKE_BUILD_TYPE设置成ReleaseRelWithDebInfoMinSizeRel时,都会加上-DNDEBUG选项,将assert给优化掉。Debug虽然启用了assert,但是又没有开优化。

如果需要在开启优化的同时启用assert,可以将CMAKE_BUILD_TYPE设置成None(因为有些project会设置默认CMAKE_BUILD_TYPE),然后另外传入编译选项,C语言的编译选项通过设置CMAKE_C_FLAGS传入,C++的编译选项通过设置CMAKE_CXX_FLAGS传入,两者可以一起设置:

cmake .. -DCMAKE_BUILD_TYPE=None -DCMAKE_C_FLAGS="-Wall -O3" -DCMAKE_CXX_FLAGS="-Wall -O3"

参考:https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html