日韩性视频-久久久蜜桃-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)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线精品小视频 | 成人黄色激情小说 | 亚洲aaa| 日本黄色视| 久久亚洲精华国产精华液 | 91操视频 | 综合国产一区 | 91视频在线免费看 | 久久国产视频网 | 91精品国产高清一区二区三密臀 | 穿越异世荒淫h啪肉np文 | 涩涩五月天 | 五十路在线 | 亚洲男人天堂2020 | 美女一区二区三区四区 | 亚洲成人1区 | 亚洲精选久久久 | 春物催眠 | 97人妻人人澡人人爽人人精品 | 噜噜啪啪| 小妹色播 | 日韩网红少妇无码视频香港 | 日韩中文字幕精品 | 97在线免费视频观看 | av网址观看 | 麻豆精品国产传媒mv男同 | 国产cao | 午夜伊人网 | 久久婷婷国产麻豆91 | 亚洲天堂v| 嫩草一二三| 91亚瑟 | 好吊色视频在线观看 | 欧美一区二区三区视频在线观看 | 99热国产 | 调教驯服丰满美艳麻麻在线视频 | 国产成人片 | 国产网址在线 | 国产夫妻在线视频 | 日韩视频在线观看免费 | 国产精品欧美激情 | 亚洲中文字幕无码爆乳av | 欧美小视频在线 | 亚洲天堂av电影 | 手机看片日韩在线 | 亚洲性猛交富婆 | 国产一二三区在线视频 | 久久婷婷av| 高清一区二区三区四区五区 | 日韩av一区在线 | 操色网 | 免费网站在线观看视频 | 尤物视频网站在线观看 | 日日摸夜夜添夜夜添高潮喷水 | 国产精品suv一区二区 | 精品国偷自产一区二区三区 | 日韩在线一级片 | 蜜桃视频污 | 香蕉视频啪啪 | 亚洲一本在线观看 | 在线观看日韩一区二区 | 国产女主播一区二区 | 黄色a一级 | 青草青青视频 | 国内精品人妻无码久久久影院蜜桃 | 男女av网站 | 操丰满女人 | 天天射网站 | 日韩欧美91 | 成人精品视频在线观看 | 国产成人精品一区二区三区四区 | 在线视频区 | 久久国产主播 | 黄色仓库av | 三级视频网 | 亚洲欧洲一区 | 免费在线黄网 | 国产又黄又猛又粗 | 荫蒂被男人添免费视频 | 99精品视频免费版的特色功能 | 国产精品视频一区二区三区在3 | jzzijzzij亚洲成熟少妇在线播放 狠狠躁日日躁夜夜躁2022麻豆 | 99这里只有精品视频 | 日日操夜夜爽 | 五月天精品在线 | 亚洲精品国产精品乱码在线观看 | 99re这里只有精品在线观看 | 免费看美女隐私网站 | 超碰久操 | 成人深夜在线观看 | 操比网站| 国产成人在线一区二区 | 免费看国产曰批40分钟粉红裤头 | 播播网色播播 | 国产精品卡一卡二 | 激情视频国产 | 香蕉久久夜色精品国产使用方法 | 狠狠干,狠狠操 | 一区二区成人免费视频 |