Vim編程下自創Makefile模板

來源:互聯網
上載者:User

標籤:linux   vim   makefile   

前言

       一直都對Linux和Vim情有獨鐘,其實windows也很不錯,因為工作上難免有些情況只能使用windows進行開發,包括有些API或者SDK都只有windows版本,只是用Linux的時候就感覺和電腦特別親近的感覺,哈哈哈,誇張而言。

       至於Vim(這裡暫且不討論vim和emacs誰更好的問題,這個是哲學問題),對比起大多數人估計都習慣使用IDE進行編程,使用vim確實難度會大很多,所以,如果不是專業的開發人員,其實也沒有必要使用vim編程,不過有時候想,如果當年大學的編程課教的不是使用IDE編程而是文字編輯器編程,估計對於很多熱愛開發的人員來說,效率會高很多,因為用IDE總有很多你完全不知道為什麼都錯誤出現,我也是經過了很長一段時間的積累,加上看了《C++物件模型》和使用了Vim編程之後才慢慢理解了曾經“無厘頭”的錯誤。

       最重要的是,一旦精通了Linux下使用Vim編程,從此那些關於連結庫和標頭檔連結的問題都會迎刃而解。

 

Makefile是什麼

       相信如果不用IDE編程的話,必須要會的就是如何使用Makefile去串連標頭檔、庫檔案和源檔案。

       網上有像《Makefile經典教程》這樣的教程,不過話說,我自己也看到不少於三遍也沒有完全記住,但實際使用中,其實也不是全部都用得上,即使是在大型的團隊合作項目中,同時使用多個我提供的Makefile模板也足夠應付了,那些進階的功能(如變數、函數使用)更多的是應用於編寫SDK或API或者函數庫中才會使用到。

 

我的Makefile模板
#Makefile fileDIR_INC = ./include #所有標頭檔放到此處DIR_SRC = ./scr #所有源檔案放到此處DIR_OBJ = ./obj #所有中介軟體檔案放到此處DIR_BIN = ./bin #產生的檔案放到此處DIR_3RD = ./3party #第三方庫的標頭檔放到此處DIR_LIB = ./lib #第三方庫檔案的連結庫放到此處SRC = $(wildcard ${DIR_SRC}/*.cc)OBJ = $(patsubst %.cc,${DIR_OBJ}/%.o,$(notdir ${SRC}))TARGET = mian #產生的檔案名稱BIN_TARGET = ${DIR_BIN}/${TARGET}CC = g++CXXFLAGS = -g -Wall -I${DIR_INC} -I${DIR_3RD}LDFLAGS = -L${DIR_LIB}LIBS= -lopencv_core -lopencv_highgui #連結庫模組,使用空格隔開多個檔案${BIN_TARGET} : ${OBJ}    $(CC) $(OBJ) -o [email protected] $(LDFLAGS) $(LIBS)${DIR_OBJ}/%.O:${DIR_SRC}/%.cc    $(CC) $(CXXFLAGS) -c $< -o [email protected].phony:cleanclean:    find ${DIR_OBJ} -name *.o -exec rm -rf {}\;
 一些注意事項
  1. 整個Makefile檔案都不要使用空格鍵最為安全,你看到的所有空格其實是有Tab鍵產生的,一旦使用了空格鍵,檔案是預設空格是編譯語言的其中一部分,從而會導致錯誤的出現。包括在編寫注釋的時候,也不要用空格,我就是因為圖方便用了空格對齊所有的注釋,結果,浪費了一個半小時排查原因。
  2. 使用-l串連庫模組時,不要直接寫檔案名稱,要把檔案名稱中開頭的lib去掉。例如,源檔案是libopencv_core.so,在串連時使用-lopencv_core.
  3. 多個串連模組,使用空格分開。

 

轉載請註明出處:http://blog.csdn.net/luoyun614/article/details/42806875

Vim編程下自創Makefile模板

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.