摘 要:文章先介紹了GCC編譯器相關內容,包括GCC編譯程序和GCC編譯選項,隨后介紹了GDB調試程序相關內容,包括GDB具體操作和GDB基礎命令,最后介紹了C語言編寫中的注意事項,希望能給相關人士提供有效參考。
關鍵詞:Linux操作系統;C語言編譯;調試方法
引言:C語言擁有較強的表達能力、應用范圍較廣、功能豐富,同時目標程序的運行效率相對較高,擁有良好的可移植性,不但擁有高級語言應用優勢,同時還兼具低語言特征。為此C語言也是當下推廣速度最快的計算機語言。
一、GCC編譯器
(一)GCC編譯程序
Linux OS系統中應用的C編譯器主要是GCC編譯器,如果初步了解其他控制系統中的某種C編譯器,則便會快速掌握GCC操作。結合相關編輯軟件編制完成某一C語言源程序后,會直接進入下面幾項環節,分別是程序運行、連接、開展編譯工作、程序輸入等。比如在設計C源程序的filel.c時,通過編譯后可以或得filel.o的目標文件,并和系統中的庫函數實施有效連接,最終獲得filel.out可執行文件,并開始啟動filel.out文件運行。
GCC編譯器執行命令的具體用法如下所示:
GCC[選項][文件名]
GCC編譯程序中如果不存在任何選項的條件下,便會自動生成一種a.out可執行文件,比如以下命令會在現有目錄下生成一種稱作a.out的文件,相關文件名為gcc filel.c。
如果想要改變系統默認文件名a.out,在開展編譯工作中相關技術人員可以自主指定相應的可執行文件名,從而對系統自動生成的a.out文件實施有效替換,比如可以把filel.c名字的C程序改編為filel.out名字的可執行文件,并按照下方命令參考輸入:gcc-o filel.out filel.c。操作中需要注意應用-0選項過程中,后面應該緊跟一種文件名[1]。
(二)GCC編譯選項
GCC編譯選項多種多樣,其中僅有少部分會頻繁選用,除了相關選項之外,還包含各種不會經常應用的選項,為此可以輸入man gcc,并查閱其應用方法。除此之外,部分GCC選項內還包含超出一個的字符,為此應該針對各個選項指定相應的連字符-,盡量不要在同一連字符后面陸續跟多個選項。比如-p、-g、-pg三種選項最終的執行結完全不同,前者主要是剖析建立信息,隨后將相應的調試信息添加到可執行文件內,而后者是單純構建剖析信息。
二、GDB調試程序
(一)GDB具體操作
Linux操作系統中設置有GDB調試器,該種裝置主要作用是調試C語言的程序工具,其中CDB提供的具體功能包括程序中可監視的變量值,可以合理設置斷點,從而方便在指定代碼的基礎上,讓程序停止運行,并按照順序一行行落實具體程序。為了保證GDB的正常運行,需要在進行編譯的過程中,讓程序含有調試信息。調試信息中囊括了程序內各種變量類型,同時還含有可執行文件內的地址映射,和機器碼互相關聯。
假如啟動GDB調試器并運行,則需要于命令行中輸入GDB,隨后按下回車鍵,便可以順利啟動運行GDB,在啟動GDB后,顯示屏幕中還會展示出相應的提示信息,最后一行主要是GDB提示符號:(gdb)。
(二)GDB基礎命令
GDB能夠為多種命令實現具體功能提供可靠支持。相關命令從原本的簡單文件內轉入允許檢查調用堆棧內容當中,下面介紹在GDB實施程序調試過程中經常會應用到的幾種命令:命令file主要功能是將即將調試對象可執行文件裝入;kill命令的功能是將調試中的程序終止;list命令功能為將執行文件中部分源代碼列出;next命令主要功能是執行某行源代碼,但不會進入到函數內部;step命令的功能是按照某行源代碼執行,但不會進入函數內;run命令功能是按照當下被調試程序執行;quit命令的功能是從GDB中徹底退出;watch命令的具體功能是針對某一變量進行全面監控,不論其什么時候會被改變;break命令的主要功能是設計斷點,保證當程序在運行到一定條件下可以被掛起;make命令功能是只要不從GDB內退出,便可以重新生成執行文件。通過將GDB-H輸入到命令行中,便可以獲得相關命令選項的列表說明[2]。
三、C語言編寫注意事項
Linux操作系統內編寫C語言的過程中,需要注意下面幾種問題:
第一是和其他系統內進行C語言編寫程序相同,包括編輯、編譯、調試、運行等步驟,調試方法也大致相同,比如夠能夠設計斷點,單步執行調試程序。第二是在DOS以及WINDOWS相關操作系統中,主要是應用TUBRO C,但其屬于一種女匯集運行、調試、編輯多種功能的編程環境,但在Linux操作系統操作系統中,應該如同記DOS命令,把所有命令選項、應用方法和參數全部記住。第三是C語言在各個操作系統里面都是.C的擴展名,但執行文件以及目標文件相關擴展名則大不相同,比如Windows以及DOS相關系統中的目標文件全部是.obj,而相關執行文件則是.exe。但在Linux操作系統以及UNIX系統內,目標文件擴展名是,o,而執行文件的擴展名則是.out,其中需要著重注意,不然便會導致系統無法準確找出相關文件,最終出現錯誤。
綜上所述,Linux操作系統是全世界范圍內最為知名的自由免費軟件,其自身便屬于一種可以和Windows相媲美的系統,并在互聯網中發布出來,大部分人會將其下載下來并結合自身需求不斷完善其相關功能,將Linux打造成一種擁有廣泛發展前景、較為穩定的操作系統,該系統內還包含多種C語言開發工具。
參考文獻:
[1]楊炎熙.關于嵌入式Linux操作系統的開發及應用的研究[J].數字通信世界,2019(11):156.
[2]菅華.深度挖掘配置核查與口令自動化加固工具在實際工作中的應用[J].信息通信,2019(09):100-103.
作者簡介:
蔡雅慧(1996-),女,籍貫:海南;職稱和學歷:本科;研究方向或專業:計算機科學與技術專業。