|
我喜歡電子設(shè)計(jì),每當(dāng)腦袋閃過(guò)idea時(shí),我都會(huì)將這個(gè)想法變成現(xiàn)實(shí),每當(dāng)制作完成后都特別有成就感。就這樣愛(ài)好電子制作的我不甘心平庸的在維修廠一直工作下去。我開(kāi)始報(bào)名嵌入式網(wǎng)絡(luò)課堂,花了重金來(lái)投資自己,學(xué)會(huì)了嵌入式開(kāi)發(fā)的基礎(chǔ)知識(shí)熟悉了linux系統(tǒng)編程,嵌入式產(chǎn)品開(kāi)發(fā)流程,應(yīng)用編程的知識(shí)。我的技術(shù)有了很大提高,我在維修廠主動(dòng)搞技術(shù)革新,為廠子解決了難題也為提高了自己的技術(shù)水平。就這樣積累了一段時(shí)間我開(kāi)始了轉(zhuǎn)行業(yè)打算。面試并非一帆風(fēng)順,處處碰壁,我應(yīng)聘的是嵌入式驅(qū)動(dòng)工程師,HR了解了我的水平后給出的回答是,我的技術(shù)知識(shí)太雜了,各方面都接觸點(diǎn)但都不深入,沒(méi)有開(kāi)發(fā)經(jīng)驗(yàn)。而我選擇的驅(qū)動(dòng)工程師要求要有工作經(jīng)驗(yàn)而且各方面涉及的知識(shí)都要明白。HR的建議可以做一些C語(yǔ)言方面的應(yīng)用開(kāi)發(fā)的工作,結(jié)果我的技術(shù)水平?jīng)]有達(dá)到那個(gè)深度面試還是失敗了。
我明白了我不能繼續(xù)待在原單位工作了,我打算去北上廣深一線城市找工作從基礎(chǔ)干起,積累工作經(jīng)驗(yàn)。同時(shí)繼續(xù)學(xué)習(xí)基礎(chǔ)知識(shí)。
今天我下班開(kāi)始學(xué)習(xí)多文件編譯,動(dòng)態(tài)庫(kù)制作,靜態(tài)庫(kù)制作等知識(shí)。
編譯四個(gè)步驟:1預(yù)處理 2編譯 3匯編 4鏈接
簡(jiǎn)單的多文件編譯方法
gcc calc.c add.c sub.c mul.c div2.c -ocalc
其中calc.c中包含main函數(shù),將需要編譯的文件都寫(xiě)上gcc可以自動(dòng)完成鏈接操作
通過(guò)練習(xí)上面的練習(xí)程序適應(yīng)vi編輯器的操作了
vi命令 :wq 保存修改并退出 x刪除當(dāng)前字符 yy復(fù)制一行 p粘貼粘貼板的內(nèi)容到當(dāng)前行的下面
i 從當(dāng)前光標(biāo)處進(jìn)入插入模式 a追加模式,置光標(biāo)于當(dāng)前光標(biāo)之后
制作目標(biāo)文件 gcc add.c -c 輸入命令后會(huì)生成add.o文件
其實(shí)多文件編譯鏈接的是目標(biāo)文件 gcc calc.c add.o sub.o mul.o div2.o -ocalc
制作靜態(tài)庫(kù)
ar命令 功能:創(chuàng)建,修改或擴(kuò)展歸檔文件
ar 選項(xiàng) 歸檔文件 文件列表
選項(xiàng) c:創(chuàng)建
r:插入文件
制作 ar cr lib文件名.a 目標(biāo)文件列表
例子 ar cr libucalc.a add.o sub.o mul.o div2.o
靜態(tài)庫(kù)鏈接:gcc 源文件 -o 程序 -L路徑 -l文件名
例子 gcc calc.c -o calc -L. -lucalc
制作動(dòng)態(tài)庫(kù)
gcc -fPIC -shared -o lib文件名.so 目標(biāo)文件
-fPIC 生成非地址相關(guān)的共享庫(kù)
用法:gcc 源代碼 -o 程序 -L路徑 庫(kù)路徑
|
|