日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

树莓派:linux库概念及相关编程(面试重点):以及USB端口号找到不的情况

發(fā)布時間:2025/4/5 linux 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 树莓派:linux库概念及相关编程(面试重点):以及USB端口号找到不的情况 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、分文件編程案例

好處:

? ? ? ? 分模塊的編程思想????????

? ? ? ?(eg: 網(wǎng)絡交給 ????????????a同事?來做

? ? ? ? ????????超聲波交給 ????????b同事來做

? ? ? ? ????????電機交給? ? ? ? ? ? ? c同事來做)

? ? ? ? ?a.功能責任劃分

? ? ? ? ?b.方便調(diào)試

? ? ? ? c.主程序簡潔

二、庫

a、靜態(tài)庫

靜態(tài)函數(shù)庫:是在程序執(zhí)行之前(編譯)就加入到目標程序當中去了

優(yōu)點:運行快

缺點:大

b、動態(tài)庫

動態(tài)函數(shù)庫:是在程序執(zhí)行時動態(tài)(臨時)由目標程序去調(diào)用

缺點:運行慢

優(yōu)點:小

??三、庫的制作

靜態(tài)庫的的制作:格式xxxx.a

a、gcc calcufuncs.c -c? ? ? ? ? ? ????????????????????????????????生成xxxx.o文件

b、ar rcs libcalcufunc.a calcufuncs.o? ? ? ? ? ? ? ? ? ? ? ? ? xxxx.o文件生成xxxx.a靜態(tài)庫文件

?

動態(tài)庫的制作:

?gcc -shared -fpic calcufuncs.c -o libcalc.so

-shared? 指定生成動態(tài)庫

-fpic? ? 標準? ? ? ? fpic選項作用于編譯階段,在生成目標文件時就得使用該選項,以生成位置無關的代碼

四、庫的使用

靜態(tài)庫:

? ? ? ? ? ? ? ? gcc calculatorT.c -lcalcufunc -L ./ -o mainProStasic

? ? ? ? ? ? ? ? ? -lcalcufunc? ? -l 是指定要用的動態(tài)庫,庫名砍頭去尾

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -L告訴gcc編譯器從-L指定的路徑去找靜態(tài)庫。默認是從

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /usr/lib? ? 或者? ?/usr/local/lib 去找

? ? 動態(tài)庫:? ? ?

????????gcc calcuatorT.c -lcalc -L ./ -o mainProDy? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ????????? ? libcalc.so

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????也是砍頭去尾? ?

帶動態(tài)庫的程序

可以指定該程序運行時候,在LD_LIBRARY_PATH 所指定的路徑去找?guī)煳募?/p>

export LD_LIBRARY_PATH="/home/pi/back/tset"

相關代碼的實現(xiàn):

一、分文件編程案例相關代碼

先新建一個back 文件夾

?

?新建一個叫calculatorT.c的文件

這是具體的代碼

?

?

?運行結果

分文件的思想是,能不能把加減乘除寫在另一個文件里面

main是程序的主入口函數(shù)

main函數(shù)上面的函數(shù)則是功能性函數(shù)

? ? ? ? ? ? ? ? 1、串口

? ? ? ? ? ? ? ? 2、網(wǎng)絡

? ? ? ? ? ? ? ? 3、線程

? ? ? ? ? ? ? ? 4、語音

? ? ? ? ? ? ? ? 5、加法 乘法 減法 除法

新建一個test的文件夾

然后把calculatorT.c? 復制到當前目錄下(也就是test下面)

改個名字

?我要把它的main函數(shù)全部去掉,留下加減乘除,就可以啦

同樣的主函數(shù)里面我們也把沒有的去掉

?留下main函數(shù)

?那么我這兩個文件怎樣才能聯(lián)合起來呢?

兩個文件一起編輯,理論上會出錯

?那么如何才能去掉這些警告呢?

我們先運行起來,看看能不能運行

運行起來也可以(理論上應該報錯)

理論上我們還需要一個函數(shù)的聲明

起一個跟.c 文件一樣名字的.h 文件

然后修改.h文件

把函數(shù)體給他去掉,留下函數(shù)的原型

記得后面寫個分號,這叫函數(shù)的聲明

然后要把頭文件.h包含到主程序里面

??那么為什么有的頭文件用<>,有的用""號呢?

<>的意思是,默認的情況下,從usr/include里面找或者去usr/local/include里面去找頭文件

?里面有這么多頭文件

假設我們想看stdio的

如果你寫""號呢?

他會優(yōu)先從當前路徑來找

比如現(xiàn)在我們的代碼在test的位置

會從當前位置找找看有沒有頭文件,有的話引用這個頭文件,沒有的話去默認的的usr/include里面找或者去usr/local/include里面去找頭文件,找不到就報錯

?運行一下

沒有任何警告生成了a.out

?運行一下

?這就是分文件,就是把一個文件拆分成兩個而已

二、靜態(tài)庫的制作和使用相關代碼

靜態(tài)庫制作:

主程序不是拿來打包的,我們打包的是功能程序

gcc calcufuncs.c -c? ? ? ? ? ? ????????????????????????????????生成xxxx.o文件

?如果我們遇見不認識的

比如不認識里面的ar

可以ar 或者ar --help

?ar rcs libcalcufunc.a calcufuncs.o? ? ? ? ? ? ? ? ? ? ? ? ? xxxx.o文件生成xxxx.a靜態(tài)庫文件

靜態(tài)庫的使用:

被誰用?當然是被主函數(shù)拿來用啦

你給別人的時候給.a和.h就可以啦

~是工作目錄

*是通配符

(下面的意思:所有以calcufuncs開頭的文件都給他移到工作目錄中去,工作目錄就是home/pi)

?我們移出去多了,還得把.h移回來

你給別人提供的是.a 和.h 文件

用你的東西.a就夠了,但是你必須把.h頭文件給他,要不然它不知道你給的頭文件有哪些函數(shù)

?(最好寫點注釋,都是干啥的)

????????

這樣別人在用的時候就可以砍頭去尾

顯示有一個報錯

因為-l有點像頭文件,他會優(yōu)先從usr/lib下面去找

那我們想要它從當前路徑來找怎么辦呢?

我們給他加一個-L,從指定路徑,當面路徑開始找,如果當前路徑?jīng)]有,再從usr/bin里面找,或者從usr/local/bin里面找

?然后可以給他取個名字

./代表當前路徑

把這個.c文件編譯去鏈接這個靜態(tài)庫(calcufunc),在哪找這個靜態(tài)庫呢?./在當面路徑下鏈接

運行

這樣既做到了你寫的功能給了別人,還做到了代碼的保護,別人不知道你是怎么實現(xiàn)的

? ? gcc calculatorT.c -lcalcufunc -L ./ -o mainProStasic

? ? ? ? ? ? ? ????????????????? ? -lcalcufunc? ? -l 是指定要用的動態(tài)庫,庫名砍頭去尾( libcalcufunc.a里面的lib去掉,.a去掉)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -L告訴gcc編譯器從-L指定的路徑去找靜態(tài)庫。默認是從

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /usr/lib? ? 或者? ?/usr/local/lib 去找

三、動態(tài)庫的制作和使用相關代碼

假如你開發(fā)了一個程序,程序不想給別人源碼,你只想給人家?guī)?/p>

通常我們做開發(fā)只寫一個.c 和.h 給人家

那我現(xiàn)在要把.c 變成動態(tài)庫

?gcc -shared -fpic calcufuncs.c -o libcalc.so

-shared? 指定生成動態(tài)庫

-fpic? ? 標準? ? ? ? fpic選項作用于編譯階段,在生成目標文件時就得使用該選項,以生成位置無關的代碼

?

把生成的動態(tài)庫拷貝到test里面

(動態(tài)庫和靜態(tài)庫的命名不一樣

靜態(tài)庫libxxxxx.a

動態(tài)庫libxxxxxx.so

so是動態(tài)庫的意思,.a是靜態(tài)庫的意思

這個.so 跟window 的.dll有點像)

?我們自己做的時候不關心版本號

?編譯主程序,也是找不到的

用-L指定從當前文件夾來找

?他的使用和靜態(tài)庫一樣

????????gcc calcuatorT.c -lcalc -L ./ -o mainProDy? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ????????? ? libcalc.so

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????也是砍頭去尾? ?

執(zhí)行不起來

?為什么呢?因為靜態(tài)庫和動態(tài)庫的區(qū)別

?

?

?而我們動態(tài)庫提示找不到動態(tài)庫

?為什么呢??

因為動態(tài)庫是程序執(zhí)行過程中由目標臨時去調(diào)用(也就是說它運行的時候會去到處找這個庫)

靜態(tài)庫不需要找,因為他已經(jīng)編譯到這個程序里面去了

有一種解決方法,把他copy到usr/lib里面去

他會默認去usr/lib里面去找

?我們給他刪掉再來運行

又有錯誤

?那我們?nèi)绾尾拍苤付ㄟ\行的時候到當前路徑去找呢?

你直接敲export會把系統(tǒng)的環(huán)境變量列出來

?然后?選擇第二種方式

帶動態(tài)庫的程序

可以指定該程序運行時候,在LD_LIBRARY_PATH 所指定的路徑去找?guī)煳募?/span>

export LD_LIBRARY_PATH="/home/pi/back/tset"

?但是這個環(huán)境變量是臨時的,只是針對這個窗口,換一個窗口呢?

?也不行

所以我們可以寫一個腳本

?腳本里面的內(nèi)容

?

然后給這個腳本一個可執(zhí)行的權限

?結果

換一個窗口執(zhí)行start.sh 也是一樣的

?shell腳本,就是把多個指令并在一起

那我們再來計算一下文件的大小

du 是計算文件大小的意思

理論上動態(tài)庫會更小

? ? ? ? 補充:

有時候端口號莫名的找不到了

你咋連也連接不上去

需要下載解壓這個文件?

打開這個文件?

有時候安裝失敗,你可以先點擊卸載再安裝

?

?這時候就能打開樹莓派了

?用戶名pi

密碼raspberry

總結

以上是生活随笔為你收集整理的树莓派:linux库概念及相关编程(面试重点):以及USB端口号找到不的情况的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲狼人干 | 电影《两个尼姑》免费播放 | 一级二级三级视频 | 日本午夜一级 | 女人下边被添全过视频 | 九九久久精品视频 | 一级特黄aa大片欧美 | 欧美99久久精品乱码影视 | 久久久久久亚洲av毛片大全 | 国产又大又黄又爽 | 精品1区2区3区 | 国语一区 | 毛片综合 | 四季av国产一区二区三区 | 免费成人av网址 | 国产剧情av在线 | 国产午夜福利精品 | 日韩精品久久一区 | 无码国产精品一区二区色情男同 | av色网站| 九九综合九九 | 体内射精一区二区 | 午夜影视剧场 | 性欧美一级 | 国产女人水真多18毛片18精品 | 久久精品牌麻豆国产大山 | 超碰在线图片 | 99热在线播放 | 国产一区在线观看视频 | 黄色成人在线网站 | 欧美激情在线观看 | 午夜影院在线观看免费 | 日日操夜夜操视频 | 国产又色又爽又高潮免费 | 国产精品分类 | 久久丫精品 | 国产麻豆剧传媒精品国产 | 日韩一卡二卡 | 男女做爰真人视频直播 | 色男天堂 | 国产精品视频免费在线观看 | 9人人澡人人爽人人精品 | 另一种灿烂生活 | 日本一区电影 | 91欧美激情一区二区三区成人 | 精品人妻一区二区三区日产乱码卜 | 久久久91| 欧美国产二区 | 国产不卡精品 | www.啪啪| av在线电影网站 | 亚洲品质自拍视频网站 | 中文字字幕在线中文乱码电影 | 亚洲三级久久 | 干干干日日日 | 五月激情四射网 | 欧美另类xxxxx | 四虎成人在线观看 | 户外露出一区二区三区 | 丁香婷婷综合激情 | 欧美 日韩 国产 一区二区三区 | 久久伊人精品 | 亚洲色图在线观看 | 男人午夜免费视频 | 色综合天天综合网天天看片 | 亚洲图片在线播放 | 久久国产精品波多野结衣av | 狠狠操中文字幕 | 天天操免费视频 | 国产毛片在线看 | 朝鲜美女黑毛bbw | 亚洲一区中文字幕 | 欧美日韩在线观看视频 | 96精品在线 | 三上悠亚在线一区 | 国产又黄又猛又粗 | 中文字幕+乱码+中文乱码91 | 中文av一区二区 | 91网视频 | 女优一区二区三区 | av导航在线| 无码视频在线观看 | 亚洲欧美国产精品专区久久 | 久久久久久久久久久久电影 | 69精品人人人人 | 日韩精品中文字幕一区二区三区 | 婷婷色婷婷开心五月四房播播 | 青青草公开视频 | 精品人妻无码一区二区三区 | 4438x亚洲| 色哟哟网站在线观看 | 韩国三级hd中文字幕的背景音乐 | 国产激情在线看 | 久久人人视频 | 无码人妻一区二区三区av | 13日本xxxxxⅹxxx20| 亚洲91精品| 欧美野外猛男的大粗鳮 | 亚洲精品国产精品乱码在线观看 |