關於makefile的一點思考

2021-06-12 17:45:48 字數 825 閱讀 9711

在gnu編譯工具軟體中,如果對單一的原始檔進行編譯,可執行指令如下:gcc -o***x  ***x.c  。此指令會將原始檔編譯為目標檔案。若是對執行緒類檔案進行編譯,則在末尾加上 -lpthread指令。

但若是對多檔案進行編譯,即若是編譯的目標檔案同時包含另一檔案中的函式。則在編譯的時候需將另一檔案加到編譯原始檔中。即: gcc -o ***x  ***x.c bbbb.caaaa.c 。這一點需要特別注意。並不同於vc的編譯方法。

少量的檔案還好,如果是需要對大量的原始檔進行編譯,則此時需要新增多個檔案,這是非常麻煩的一件事情。而且如果個別檔案修改了,整個所有的檔案需要重新編譯一遍。費時費力。此時就需要運用makefile來實現編譯。makefile通過一定的規則,將各個依賴的檔案相互組織起來,方便快捷的實現了多檔案的編譯。

在linux環境下編寫執行於**開發板的makefile檔案大體如下

cc=/opt/ifx-lxdb-1-2/gcc-3.3.6/toolchain-mips/bin/mips-linux-gcc

//cflags= -ddebug -d__linux__-g

ccflags=-wall

***: ***.o ***xx.o

$(cc) $(ccflags)***.o ***xx.o -o ***

cp ***/boardshare

***.o:***.c

$(cc) -c$(ccflags) ***.c -o ***.o

***xx.o:***xx.c

$(cc) -c$(ccflags) ***xx.c -o ***xx.o 

clean:

rm -rf  *.o 

關於指標的一點思考

指標是乙個變數,所不同的是,它存的是位址。因為資料型別決定著如何解釋這個位址 位元組數和操作 因此根據的資料型別的不同,指標又有不同的型別。某個物件 a 的位址範圍為 a,a size n 其中size n是a所佔的位元組數 比如乙個一維陣列int a 10 位址範圍為 a,a 10 sizeof ...

關於演算法的一點思考。。。

關於演算法的一點思考。在實踐過程中,我發現 有時候要解決乙個問題,可以設計幾個演算法分步完成任務,這樣處理起來比較簡單,但是情況並非總是如此,有時,我們需要將幾個步驟放在同乙個演算法內連帶處理,這樣才比較容易處理問題。我還發現,有時候,解決問題的演算法,是被發現出來的,並加以一步一步的檢驗才得以確定...

關於Toleft的一點思考

先看下面的圖 任給乙個三角形,當你從某個頂點沿著三角形逆時針運動時,你會發現三角形內部的點始終在你的左手邊。所以這就給了我們啟示 如果能判斷乙個點在三條有向線段的左邊,而且這三條有向線段構成乙個三角形 首尾相接 那麼這個點就在這個三角形內。所以現在的問題是如何快速判斷乙個點在直線的左邊還是右邊。學過...