員工考勤打卡時(shí),如何避免非本人代替打卡?
695
2025-04-02
? ?查找文件:
[root@wbyq /]# find / -name stdio.h
? ?文本搜索工具:
# grep -q "12345" /123.c || echo "12345" >> /123.c
? ?文本修改工具:sed
? 練習(xí):
1. ?制作動(dòng)態(tài)庫(kù)與靜態(tài)庫(kù)
2. ? (擴(kuò)展) 編寫(xiě)一個(gè)find功能的程序:可以查找指定目錄下指定的文件。(關(guān)心多層目錄)
3. ?編寫(xiě)一個(gè)文本修改程序:可以修改指定文件中的內(nèi)容。
(1) ?將指定一行的內(nèi)容全部替換為空格
(2) ?將指定一個(gè)字符串替換為傳入指定的字符串。 ./a.out /123.c 888 666
? ?安裝軟件的命令:
[root@wbyq Packages]# rpm -ivh tree-1.5.3-2.el6.i686.rpm
任務(wù)1:靜態(tài)庫(kù)與動(dòng)態(tài)庫(kù)
[root@wbyq test]# arm-linux-gcc 123.c -o app_1
[root@wbyq test]# arm-linux-gcc -static 123.c -o app_2
Linux下庫(kù)文件存放的位置: /lib (存放的是動(dòng)態(tài)庫(kù))
.so屬于動(dòng)態(tài)庫(kù), .a屬于靜態(tài)庫(kù)
動(dòng)態(tài)庫(kù)稱(chēng)為共享庫(kù):gcc 123.c -o app
共享庫(kù):程序在運(yùn)行的時(shí)候去調(diào)用函數(shù)(載入函數(shù))。
靜態(tài)庫(kù):相關(guān)的函數(shù)在編譯的時(shí)候就已經(jīng)拷貝到目標(biāo)中。
[root@wbyq test]# file app_1
app_1: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.27, not stripped
[root@wbyq test]# file app_2
app_2: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.27, not stripped
[root@wbyq test]# gcc 123.c -o app_3
[root@wbyq test]# file app_3
app_3: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
? ?GCC編譯器的選項(xiàng)參數(shù)
-o :指定生成的目標(biāo)文件名稱(chēng)
-c :指定生成.o文件(編譯好的二進(jìn)制文件)。
-g :在生成的目標(biāo)文件中加入調(diào)試參數(shù)。適用于GDB調(diào)試。
-I :指定頭文件的路徑 。 gcc 123.c -I/work
-L :指定庫(kù)文件的路徑。gcc 123.c -L/work
-l :指定庫(kù)文件的名稱(chēng)。gcc 123.c -L/work -labc
(實(shí)際上: libabc.so)
? ?生成動(dòng)態(tài)庫(kù)的指令
gcc -fPIC -shared -o <庫(kù)文件名稱(chēng)>.so 源文件名稱(chēng).c
庫(kù)文件名稱(chēng)的命名規(guī)則: libxxx.so
調(diào)用動(dòng)態(tài)庫(kù)出現(xiàn)的錯(cuò)誤:
[root@wbyq test]# ./a.out
./a.out: error while loading shared libraries: libsum.so: cannot open shared object file: No such file or directory
1. ?將xxx.so直接放到/lib目錄下。
2. ?設(shè)置環(huán)境變量:LD_LIBRARY_PATH (存放系統(tǒng)庫(kù)文件的搜索路徑)
? ?生成靜態(tài)庫(kù)。 xxx.a
如果在相同的目錄下有靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù),優(yōu)先使用動(dòng)態(tài)庫(kù)
# ar crv libsum.a sum.o
任務(wù)2:Makefile
Makefile :用于編寫(xiě)程序的編譯規(guī)則。 make命令用于執(zhí)行Makefile文件。
make常用的選項(xiàng)參數(shù):
-n :輸出命令的執(zhí)行過(guò)程,不執(zhí)行名稱(chēng)
-s :隱藏命令本身。 在命令前面加上@符號(hào),可以隱藏命令本身。
$(shell pwd)
CC :特殊變量,用于存放編譯器。
? 練習(xí):
1. ?Makefile自動(dòng)化編譯
只是創(chuàng)建3個(gè)目錄,每個(gè)目錄下各有一個(gè).c一個(gè).h,一個(gè)Makefile文件
在頂層目錄下創(chuàng)建一個(gè)Makefile文件,,實(shí)現(xiàn)自動(dòng)化編譯。
2. ?Makefile自動(dòng)化編譯
只是創(chuàng)建3個(gè)目錄,每個(gè)目錄下各有一個(gè).c一個(gè).h
在頂層目錄下創(chuàng)建一個(gè)Makefile文件,實(shí)現(xiàn)自動(dòng)化編譯。
查找字符串并替換為其他字符串:
?查找字符串并替換為其他字符串。 比如: “123dfjdfv123” 將123替換為888 結(jié)果: “888dfjdfv888” “123dfjdfv123” 將123替換為8888 結(jié)果: “8888dfjdfv8888” “123dfjdfv123” 將123替換為88 結(jié)果: “88dfjdfv88” #include 模擬電子時(shí)鐘 #include Linux Makefile
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶(hù)投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶(hù)投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。