新聞中心
從常見(jiàn)的編譯錯(cuò)誤來(lái)說(shuō),主要有一下幾類:
1,符號(hào)沒(méi)有定義:這是最常見(jiàn)的錯(cuò)誤,也最容易排出,包括變量名未定義,類型沒(méi)有聲明,未定義的函數(shù),未引出的變量及函數(shù),沒(méi)有指定頭文件等等。這種錯(cuò)誤對(duì)不復(fù)雜的工程一邊比較好解決,但對(duì)于一個(gè)復(fù)雜工程,常常并不是那么簡(jiǎn)單。如果你搞個(gè)從一個(gè)工程中把一個(gè)模塊移植到其他工程中,并且牽涉到的數(shù)據(jù)較多時(shí)就知道了。
2,語(yǔ)法錯(cuò)誤:這也是非常常見(jiàn)的一類,比如標(biāo)點(diǎn)符號(hào)用錯(cuò),括號(hào)不匹配,寫成中文的符號(hào),包含了不可見(jiàn)的非法字符,拼寫錯(cuò)誤,說(shuō)道這里,我不得不提,在我們?nèi)豪锩?,把main寫成mian的有多少人,請(qǐng)舉手。這類錯(cuò)誤也比較好改,但很多初學(xué)者總是粗心大意,屢犯不爽!但也有比較復(fù)雜的語(yǔ)法錯(cuò)誤不是那么好解決甚至多年經(jīng)驗(yàn)的人也未必能輕松解決,比如遇到復(fù)雜指針類型的聲明等。
3,找不到函數(shù)的實(shí)現(xiàn):這種最常見(jiàn)的就是你使用其他庫(kù)的函數(shù),卻沒(méi)有把相應(yīng)的庫(kù)文件加入鏈接。還有就是靜態(tài)函數(shù)被其他文件調(diào)用,以及函數(shù)調(diào)用在前實(shí)現(xiàn)在后卻沒(méi)有提前聲明。4,弱智錯(cuò)誤:這個(gè)還真別說(shuō)很多人,包括老鳥(niǎo)都遇到過(guò),比如修改的文件沒(méi)有參與編譯,修改的工程不是編譯的工程,鏈接到一個(gè)錯(cuò)誤的庫(kù)或者錯(cuò)誤版本的庫(kù)。這種錯(cuò)誤有時(shí)候折騰半天才發(fā)現(xiàn),尤其是一個(gè)復(fù)雜makefile的工程。
要快速解決編譯問(wèn)題需要很多經(jīng)驗(yàn),熟悉Makefile語(yǔ)法,對(duì)宏定義、頭文件、編程語(yǔ)言的語(yǔ)法比較熟悉才能快速排出這些編譯中的故障。從小白變成大白。
對(duì)編程有感情或者想從事編程開(kāi)發(fā)的小伙伴,可以關(guān)注老碼農(nóng)們自己搞的微信公眾號(hào):程序員互動(dòng)聯(lián)盟(coder_online)問(wèn)下如何入門編程,如何編寫出自己的軟件,也可以加入技術(shù)討論組,找到志同道合的小伙伴一起學(xué)習(xí)。
名稱欄目:如何快速排除軟件中錯(cuò)誤
標(biāo)題鏈接:http://fisionsoft.com.cn/article/cggoec.html