日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux release 版本的区别,编译debug版本和编译release版本的区别

發布時間:2025/3/8 linux 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux release 版本的区别,编译debug版本和编译release版本的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大項目的版本編譯會區別debug和release,那debug和release會有什么區別呢?

通過對比這兩者的編譯選項可以找到答案。

1.對比編譯過程

debug:

-DOS_LINUX ?-DDEBUG_VERSION -fno-builtin -pipe -Wall -fsigned-char -g

-mlongcall -DCPU=PPC85XX ? ?-mcpu=8548 -mstrict-align -fno-defer-pop -DTOR202 -DTOOL_FAMILY=gnu -DTOOL=gnu -DSYS32 -DXOS_TOOLCHAIN_4_1_2

-DSTRUCTURE_ATTR="__attribute__ ((packed))" -DINSTALL_R_CPU=1

release:

-DOS_LINUX ?-DRELEASE_VERSION -fno-builtin -pipe -Wall -fsigned-char -O2

-mlongcall -DCPU=PPC85XX ? ?-mcpu=8548 -mstrict-align -fno-defer-pop -DTOR202 -DTOOL_FAMILY=gnu -DTOOL=gnu -DSYS32 -DXOS_TOOLCHAIN_4_1_2

-fno-strict-aliasing -fno-schedule-insns2 ?-fno-omit-frame-pointer

注:在使用-O2優化的時候要加上-fno-strict-aliasing -fno-schedule-insns2以防止強制類型轉化出問題,加上-fno-omit-frame-pointer是強制使用frame pointer方便調試

對比debug和release編譯選項可以發現最大的區別是是用-g選項還是使用-O2選項

2.對比鏈接過程

在進程鏈接時,debug和release的鏈接選項都一致,鏈接選項如下:

-rdynamic -Wl,--relax,-rpath,/version/lib

注:選項-rdynamic 用來通知鏈接器將所有符號添加到動態符號表中 (目的是能夠通過使用 dlopen 來實現向后跟蹤

-Wl選項告訴編譯器將后面的參數傳遞給鏈接器

--relax,-rpath動態庫鏈接選項

3.所以總的來說,debug和release版本的區別一個是編譯.c的編譯選項,debug使用了-g選項,release使用了-O2選項

閱讀(1514) | 評論(0) | 轉發(0) |

總結

以上是生活随笔為你收集整理的linux release 版本的区别,编译debug版本和编译release版本的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。