cmake开启优化的同时启用assert

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

posted @ 2024-09-28 13:05  寻找繁星  阅读(15)  评论(0编辑  收藏  举报