我正在尝试使C ++库适合我自己的用法,并且它的根CMakeLists.txt中包含以下几行
set(BUILD_TYPE_RELEASE TRUE)
set(CMAKE_CXX_FLAGS "-O3 -no-pie -march=native -ggdb -Wall \
-Wextra -Wcast-align -Wdisabled-optimization -Wformat=2 \
-Winit-self -Wmissing-include-dirs -Woverloaded-virtual \
-Wshadow -Wsign-promo -Werror")
set(CMAKE_C_FLAGS "-O3 -ggdb -std=gnu99 -I.")
根据我到目前为止的了解,将其构建类型设置为Release,并将某些优化标志和警告设置为C ++和C编译器。我有以下问题
-O0
),因此如果我
通过传递-DCMAKE_BUILD_TYPE=Debug
在调试模式下编译代码,
CMAKE_CXX_FLAGS
的优化标志会自动设置为0
而不是3?我将来可能必须调试它,所以我想对释放和调试模式如何与这些标志一起使用有一个清晰的了解。我对CMake和调试非常陌生,因此,如果我的问题在某种意义上是错误的,对不起。如果有人将一些资源理解这些标志的用法链接到此线程,我将非常感激,我很难在cmake文档中找到这些标志。
我正在linux上运行代码,我的cmake版本是3.5.1