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

歡迎訪問 生活随笔!

生活随笔

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

linux

linux GCC、GDB、Makefile

發布時間:2023/12/15 linux 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux GCC、GDB、Makefile 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?GCC,GDB和MAKE

????GCC?入門

????前面已經提到過,linux的發展離不開GNU計劃,而GNU的貢獻就在于推出了很多高質量的免費的軟件。而其中的GNU(全稱為:GNU?C??Compiler)又是具有卓越貢獻的軟件。

GCC?的一般命令為?gcc?[-選項1]?源文件名?[-選項2]?目標文件名

gcc??????hello.c??-o???hello???直接一步編譯到底

gcc??-E??hello.c??-o???hello.i????只進行預處理

gcc??-S??hello.i??-o???hello.s????只進行編譯,產生匯編程序

gcc??-c???hello.s??-o???hello.o????只進行匯編

gcc??????hello.o??-o??hello.exe???只進行鏈接

-o?的作用是指定文件名

另外選項1?如果是?-O?就是優化編譯,編譯后的程序效率會高一些。可以用命令?time?./hellol來查看一個可執行文件的執行時間

選項1?如果是?-static?就表明是靜態鏈接。GCC默認是動態鏈接。?

選項1?如果是?-g??就表明產生GDB調試所必須的符號信息。

ldd?hello.exe??查看所需要的庫

GCC默認的頭文件搜索路徑為?:?usr/include目錄

GCC默認的鏈接文件搜索路徑是:/usr/lib目錄。為什么需要鏈接?比如像printf?這樣的函數,在程序里面用到了,并且所包含的頭文件里面只有該函數的聲明而沒有該函數的定義,所以就需要鏈接。庫文件的后綴名為.a?的為靜態鏈接庫?.so的為動態鏈接庫。Gcc默認為動態鏈接庫。

GDB?入門

1:Gdb常用命令

List(l)??:查看程序

Break(b)??函數名/行號?:?設置斷點

Info?break??:打印所有斷點

Delete?斷點編號?:刪除斷點

Run(r)?:全速運行執行程序,除非有斷點

Continue(c):繼續全速執行程序

Next(n)?:單步運行程序,不進入子函數

Step(s)?:單步執行程序,進入子函數

Print(p)?變量名:打印變量值

Quit(q)???退出

GNU?Make

1)?地位:linux程序員必須學會gnu?make來構建和管理自己的軟件工程。GNU的make可以使整個軟件工程的編譯,鏈接只需要一個命令。

2)?語法:

A)目標:依賴

命令

B)?注意命令之前以tab鍵空

C)?對于沒有依賴的目標,比如進行聲明,用.PHONY例如:

???.PHONY??clean

???clean:

??? rm?……

D)幾個特殊的符號:$^?代表所有的依賴;$<?代表第一個依賴文件?;$@?代表目標

?3)多源文件的Makefile實例

總結

以上是生活随笔為你收集整理的linux GCC、GDB、Makefile的全部內容,希望文章能夠幫你解決所遇到的問題。

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