cmake Debug模式和Release模式
生活随笔
收集整理的這篇文章主要介紹了
cmake Debug模式和Release模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在cmake中要編譯debug模式的話,在CMakeLists.txt中添加如下兩行
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb ")
SET(CMAKE_CXX_FLAGS_RELEASE "${ENV{CXXFLAGS} -O3 -Wall")
然后,在編譯的時候,使用如下命令: cmake -DCMAKE_BUILD_TYPE=Debug/Release ?path
第三個參數path是指項目的頂層路徑 ======================================================================== 1.? cmake支持gdb的實現,
首先在CMakeLists.txt下加入
SET(CMAKE_BUILD_TYPE "Debug")
在下面加入:
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
原因是CMake 中有一個變量 CMAKE_BUILD_TYPE ,可以的取值是 Debug Release RelWithDebInfo >和 MinSizeRel。
當這個變量值為 Debug 的時候,CMake 會使用變量 CMAKE_CXX_FLAGS_DEBUG 和 CMAKE_C_FLAGS_DEBUG 中的字符串作為編譯選項生成 Makefile;
2.? 在GDB中間加入程序啟動參數
比如我們需要調試一個可執行文件./a.out help
這時
$gdb ./a.out
進入到gdb的命令行模式下,然后:
(gdb) set args help
就能加上可執行文件需要的參數,如果要看argc[1]到argc[N]的參數,只需要
(gdb) show args
3. gdb中查看字符串,地址的操作,數據類型
比始有一個int型的變量i,相要知道他的相關信息,可以
(gdb) print i
打印出變量i的當前值
(gdb)x &i
與上面的命令等價。
如果有x命令看時,需要看一片內存區域,(如果某個地方的值為0,用x時會自動截斷了)
(gdb) x/16bx address
單字節16進制打印address地址處的長度為16的空間的內存,16表示空間長度,不是16進制,x表示16進制,b表示byte單字節
gdb看變量是哪個數據類型
(gdb) whatis i
即可知道i是什么類型的變量
------------------------------------------------
然后,在編譯的時候,使用如下命令: cmake -DCMAKE_BUILD_TYPE=Debug/Release ?path
第三個參數path是指項目的頂層路徑 ======================================================================== 1.? cmake支持gdb的實現,
首先在CMakeLists.txt下加入
SET(CMAKE_BUILD_TYPE "Debug")
在下面加入:
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
原因是CMake 中有一個變量 CMAKE_BUILD_TYPE ,可以的取值是 Debug Release RelWithDebInfo >和 MinSizeRel。
當這個變量值為 Debug 的時候,CMake 會使用變量 CMAKE_CXX_FLAGS_DEBUG 和 CMAKE_C_FLAGS_DEBUG 中的字符串作為編譯選項生成 Makefile;
2.? 在GDB中間加入程序啟動參數
比如我們需要調試一個可執行文件./a.out help
這時
$gdb ./a.out
進入到gdb的命令行模式下,然后:
(gdb) set args help
就能加上可執行文件需要的參數,如果要看argc[1]到argc[N]的參數,只需要
(gdb) show args
3. gdb中查看字符串,地址的操作,數據類型
比始有一個int型的變量i,相要知道他的相關信息,可以
(gdb) print i
打印出變量i的當前值
(gdb)x &i
與上面的命令等價。
如果有x命令看時,需要看一片內存區域,(如果某個地方的值為0,用x時會自動截斷了)
(gdb) x/16bx address
單字節16進制打印address地址處的長度為16的空間的內存,16表示空間長度,不是16進制,x表示16進制,b表示byte單字節
gdb看變量是哪個數據類型
(gdb) whatis i
即可知道i是什么類型的變量
------------------------------------------------
總結
以上是生活随笔為你收集整理的cmake Debug模式和Release模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gsoap使用心得
- 下一篇: Boost使用几条简单笔记