




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式) 主編:楊云等主編人民郵電出版社Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)教材地址:教材地址:http:/ & Linux教教師交流群:師交流群: 189934741Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)項(xiàng)目九 使用gcc和make調(diào)試程序 項(xiàng)目導(dǎo)入:程序?qū)懞昧?,接下?lái)做什么呢?調(diào)試!程序調(diào)程序?qū)懞昧?,接下?lái)做什么呢?調(diào)試!程序調(diào)試對(duì)于程序員或管理員來(lái)說(shuō)也是至關(guān)重要的一環(huán)。試對(duì)于程序員或管理員來(lái)說(shuō)也是至關(guān)重要的一環(huán)。 職業(yè)能力目標(biāo)和要求: 理解程序調(diào)試。理解程序調(diào)試。 掌握利用掌握利用gcc進(jìn)行調(diào)試
2、。進(jìn)行調(diào)試。 掌握使用掌握使用make編譯的方法。編譯的方法。Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)項(xiàng)目九項(xiàng)目九 使用使用gcc和和make調(diào)試程序調(diào)試程序 1.了解程序的調(diào)試 2.使用傳統(tǒng)程序語(yǔ)言進(jìn)行編譯 3.使用 make 進(jìn)行宏編譯Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.1 任務(wù)任務(wù)1 了解程序的調(diào)試 1 1. . 編譯時(shí)錯(cuò)誤編譯時(shí)錯(cuò)誤 2 2. . 運(yùn)行時(shí)錯(cuò)誤運(yùn)行時(shí)錯(cuò)誤 3 3. . 邏輯錯(cuò)誤和語(yǔ)義錯(cuò)誤邏輯錯(cuò)誤和語(yǔ)義錯(cuò)誤Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)子任務(wù)1 編譯時(shí)錯(cuò)誤 編譯器只能翻譯語(yǔ)法正確的程序,否則將導(dǎo)致編譯失敗,無(wú)法生成可執(zhí)行文件。 雖然大部分情況下編譯器
3、給出的錯(cuò)誤提示信息就是你出錯(cuò)的代碼行,但也有個(gè)別時(shí)候編譯器給出的錯(cuò)誤提示信息幫助不大,甚至?xí)`導(dǎo)你。在開(kāi)始學(xué)習(xí)編程的前幾個(gè)星期,你可能會(huì)花大量的時(shí)間來(lái)糾正語(yǔ)法錯(cuò)誤。 等到有了一些經(jīng)驗(yàn)之后,還是會(huì)犯這樣的錯(cuò)誤,不過(guò)會(huì)少得多,而且你能更快地發(fā)現(xiàn)錯(cuò)誤原因。Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)子任務(wù)2 運(yùn)行時(shí)錯(cuò)誤編譯器檢查不出這類錯(cuò)誤,仍然可以生成可執(zhí)行文件,但在運(yùn)行時(shí)會(huì)出錯(cuò)而導(dǎo)致程序崩潰。讀者在以后的學(xué)習(xí)中要時(shí)刻注意區(qū)分編譯時(shí)和運(yùn)行時(shí)(Run-time)這兩個(gè)概念,不僅在調(diào)試時(shí)需要區(qū)分這兩個(gè)概念,在學(xué)習(xí)C語(yǔ)言的很多語(yǔ)法時(shí)都需要區(qū)分這兩個(gè)概念,有些事情在編譯時(shí)做,有些事情則在運(yùn)行時(shí)做。Linux
4、網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)子任務(wù)3 邏輯錯(cuò)誤和語(yǔ)義錯(cuò)誤 第三類錯(cuò)誤是邏輯錯(cuò)誤和語(yǔ)義錯(cuò)誤。如果程序里有邏輯錯(cuò)誤,編譯和運(yùn)行都會(huì)很順利,看上去也不產(chǎn)生任何錯(cuò)誤信息,但是程序沒(méi)有干它該干的事情,而是干了別的事情。當(dāng)然不管怎么樣,計(jì)算機(jī)只會(huì)按你寫(xiě)的程序去做,問(wèn)題在于你寫(xiě)的程序不是你真正想要的,這意味著程序的意思(即語(yǔ)義)是錯(cuò)的。找到邏輯錯(cuò)誤在哪需要十分清醒的頭腦,要通過(guò)觀察程序的輸出回過(guò)頭來(lái)判斷它到底在做什么。Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)任務(wù)任務(wù)2 使用傳統(tǒng)程序語(yǔ)言進(jìn)行編譯使用傳統(tǒng)程序語(yǔ)言進(jìn)行編譯 1 1. . 安裝安裝gcc 2 2. . 單一程序:打印單一程序:打印 Hello
5、 World 3 3. . 主程序、子程序鏈接、子程序的編譯主程序、子程序鏈接、子程序的編譯 4 4. . 調(diào)用外部函數(shù)庫(kù):加入鏈接的函數(shù)庫(kù)調(diào)用外部函數(shù)庫(kù):加入鏈接的函數(shù)庫(kù) 5 5. . gcc的簡(jiǎn)易用法(編譯、參數(shù)與鏈接)的簡(jiǎn)易用法(編譯、參數(shù)與鏈接)Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.2.1 子任務(wù)1 安裝gcc2安裝安裝gcc GCC(GNU Compiler Collection,GNU編譯器集合),是一套由 GNU 開(kāi)發(fā)的編程語(yǔ)言編譯器。它是一套GNU編譯器套裝。以 GPL 許可證所發(fā)行的自由軟件,也是 GNU計(jì)劃的關(guān)鍵部分。GCC原本作為GNU操作系統(tǒng)的官方編譯器,現(xiàn)已被
6、大多數(shù)類UNIX操作系統(tǒng)(如Linux、BSD、Mac OS X等)采納為標(biāo)準(zhǔn)的編譯器,GCC同樣適用于微軟的Windows。GCC是自由軟件過(guò)程發(fā)展中的著名例子,由自由軟件基金會(huì)以GPL協(xié)議發(fā)布。GCC 原名為 GNU C 語(yǔ)言編譯器(GNU C Compiler),因?yàn)樗局荒芴幚?C語(yǔ)言。但GCC 后來(lái)得到擴(kuò)展,變得既可以處理 C+,又可以處理 Fortran、Pascal、Objective-C、Java,以及 Ada與其他語(yǔ)言。Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.2.1 子任務(wù)1 安裝gcc1認(rèn)識(shí)認(rèn)識(shí)gcc (1)檢查是否安裝gcc。root rhel5 # rpm -q
7、a|grep gcccompat-libgcc-296-2.96-138libgcc-4.1.2-46.el5gcc-4.1.2-46.el5gcc-c+-4.1.2-46.el5表示已經(jīng)安裝了gcc。Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.2.1 子任務(wù)1 安裝gcc2安裝安裝gcc(2)如果沒(méi)有安裝。 掛載光驅(qū)(第二張光盤)。 將iso文件加載到光驅(qū)。 創(chuàng)建掛載點(diǎn)。root rhel5 # mkdir /mnt/mycdrom 掛載光驅(qū)。rootrhel5 # mount /dev/cdrom /mnt/mycdrom 改變路徑到光盤的Server目錄。 root rhel5 # c
8、d /mnt/mycdrom/ServerLinux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.2.1 子任務(wù)1 安裝gcc2安裝安裝gcc 按順序安裝以下包就可以完成gcc的安裝了。rootrhel5 Server# rpm -ivh kernel-headers-2.6.18-155.el5.i386.rpmrootrhel5 Server# rpm -ivh glibc-headers-2.5-38.i386.rpmrootrhel5 Server# rpm -ivh glibc-devel-2.5-38.i386.rpmrootrhel5 Server# rpm -ivh libgomp-4.
9、4.0-6.el5.i386.rpm rootrhel5 Server# rpm -ivh gcc-4.1.2-46.el5.i386.rpmrootrhel5 Server# rpm -ivh libstdc+-devel-4.1.2-46.el5.i386.rpmrootrhel5 Server# rpm -ivh gcc-c+-4.1.2-46.el5.i386.rpm Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.2.3 子任務(wù)3 主程序、子程序鏈接、子程序的編譯1撰寫(xiě)所需要的主程序、子程序撰寫(xiě)所需要的主程序、子程序rootwww # vim thanks.c#include int
10、main(void) printf(Hello Worldn); thanks_2();# 上面的 thanks_2(); 那一行就是調(diào)用子程序! rootwww # vim thanks_2.c#include void thanks_2(void) printf(Thank you!n);Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.2.3 子任務(wù)3 主程序、子程序鏈接、子程序的編譯2進(jìn)行程序的編譯與鏈接(進(jìn)行程序的編譯與鏈接(Link)(1)開(kāi)始將源碼編譯成為可執(zhí)行的 binary file。rootwww # gcc -c thanks.c thanks_2.crootwww # ll
11、 thanks*-rw-r-r- 1 root root 76 Jun 5 16:13 thanks_2.c-rw-r-r- 1 root root 856 Jun 5 16:13 thanks_2.o =編譯生成的目標(biāo)文件!-rw-r-r- 1 root root 92 Jun 5 16:11 thanks.c-rw-r-r- 1 root root 908 Jun 5 16:13 thanks.o =編譯生成的目標(biāo)文件!rootwww # gcc -o thanks thanks.o thanks_2.orootwww # ll thanks*-rwxr-xr-x 1 root root
12、4870 Jun 5 16:17 thanks =最終結(jié)果會(huì)生成可執(zhí)行文件Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.2.3 子任務(wù)3 主程序、子程序鏈接、子程序的編譯2進(jìn)行程序的編譯與鏈接(進(jìn)行程序的編譯與鏈接(Link)(2)執(zhí)行可執(zhí)行文件。rootwww # ./thanksHello WorldThank you!Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.2.3 子任務(wù)3 主程序、子程序鏈接、子程序的編譯2進(jìn)行程序的編譯與鏈接(進(jìn)行程序的編譯與鏈接(Link)此外,如果你想要讓程序在運(yùn)行的時(shí)候具有比較好的性能,或者是其他的調(diào)試功能時(shí),可以在編譯的過(guò)程里面加入適當(dāng)?shù)膮?shù),例如下面的
13、例子:rootwww # gcc -O -c thanks.c thanks_2.c = -O 為生成優(yōu)化的參數(shù)rootwww # gcc -Wall -c thanks.c thanks_2.cthanks.c: In function main:thanks.c:5: warning: implicit declaration of function thanks_2thanks.c:6: warning: control reaches end of non-void function# -Wall 為產(chǎn)生更詳細(xì)的編譯過(guò)程信息。上面的信息為警告信息 (warning)# 所以不用理會(huì)也沒(méi)
14、有關(guān)系Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.2.4 子任務(wù)子任務(wù)4 調(diào)用外部函數(shù)庫(kù):加入鏈接的函數(shù)庫(kù)調(diào)用外部函數(shù)庫(kù):加入鏈接的函數(shù)庫(kù) 我們來(lái)寫(xiě)一個(gè)程序:rootwww # vim sin.c#include int main(void) float value; value = sin ( 3.14 / 2 ); printf(%fn,value);Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.2.4 子任務(wù)子任務(wù)4 調(diào)用外部函數(shù)庫(kù):加入鏈接的函數(shù)庫(kù)調(diào)用外部函數(shù)庫(kù):加入鏈接的函數(shù)庫(kù) 那要如何編譯這個(gè)程序呢?我們先直接編譯:rootwww # gcc sin.csin.c: In fun
15、ction main:sin.c:5: warning: incompatible implicit declaration of built-in function sin/tmp/ccsfvijY.o: In function main:sin.c:(.text+0 x1b): undefined reference to sincollect2: ld returned 1 exit status# 注意看上面最后兩行,有個(gè)錯(cuò)誤信息,代表沒(méi)有成功!Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.2.4 子任務(wù)子任務(wù)4 調(diào)用外部函數(shù)庫(kù):加入鏈接的函數(shù)庫(kù)調(diào)用外部函數(shù)庫(kù):加入鏈接的函數(shù)庫(kù) 可以這
16、樣更正:編譯時(shí)加入額外函數(shù)庫(kù)鏈接的方式。rootwww # gcc sin.c -lm -L/lib -L/usr/lib =重點(diǎn)在 -lm rootwww # ./a.out =嘗試執(zhí)行新文件1.000000Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.2.4 子任務(wù)子任務(wù)4 調(diào)用外部函數(shù)庫(kù):加入鏈接的函數(shù)庫(kù)調(diào)用外部函數(shù)庫(kù):加入鏈接的函數(shù)庫(kù) 注意:由于 Linux 默認(rèn)是將函數(shù)庫(kù)放置在 /lib 與 /usr/lib 當(dāng)中,所以你沒(méi)有寫(xiě) -L/lib 與 -L/usr/lib 也沒(méi)有關(guān)系。不過(guò),萬(wàn)一哪天你使用的函數(shù)庫(kù)并非放置在這兩個(gè)目錄下,那么 -L/path 就很重要了,否則會(huì)找不到函數(shù)庫(kù)
17、的。Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.2.4 子任務(wù)子任務(wù)4 調(diào)用外部函數(shù)庫(kù):加入鏈接的函數(shù)庫(kù)調(diào)用外部函數(shù)庫(kù):加入鏈接的函數(shù)庫(kù) 除了鏈接的函數(shù)庫(kù)之外,你或許已經(jīng)發(fā)現(xiàn)一個(gè)奇怪的地方,那就是在我們的 sin.c 當(dāng)中第一行“ #include ”,這行說(shuō)明的是要將一些定義數(shù)據(jù)由 stdio.h 這個(gè)文件讀入,這包括 printf 的相關(guān)設(shè)置。這個(gè)文件其實(shí)是放置在 /usr/include/stdio.h 的。那么萬(wàn)一這個(gè)文件并非放置在這里呢?那么我們就可以使用下面的方式來(lái)定義要讀取的 include 文件放置的目錄。rootwww # gcc sin.c -lm -I/usr/incl
18、ude -I/path 后面接的路徑(Path)就是設(shè)置要去尋找相關(guān)的 include 文件的目錄。不過(guò),同樣,默認(rèn)值是放置在 /usr/include 下面,除非你的 include 文件放置在其他路徑,否則也可以略過(guò)這個(gè)選項(xiàng)。Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.2.5 子任務(wù)子任務(wù)5 gcc的簡(jiǎn)易用法(編譯、參數(shù)與鏈接)的簡(jiǎn)易用法(編譯、參數(shù)與鏈接)下面我們就列舉幾個(gè) gcc 常見(jiàn)的參數(shù)。# 僅將原始碼編譯成為目標(biāo)文件,并不制作鏈接等功能rootwww # gcc -c hello.c# 會(huì)自動(dòng)生成 hello.o 這個(gè)文件,但是并不會(huì)生成 binary 執(zhí)行文件 # 在編譯的時(shí)
19、候,依據(jù)作業(yè)環(huán)境給予優(yōu)化執(zhí)行速度rootwww # gcc -O hello.c -c# 會(huì)自動(dòng)生成 hello.o 這個(gè)文件,并且進(jìn)行優(yōu)化 Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.2.5 子任務(wù)子任務(wù)5 gcc的簡(jiǎn)易用法(編譯、參數(shù)與鏈接)的簡(jiǎn)易用法(編譯、參數(shù)與鏈接)# 在進(jìn)行 binary file 制作時(shí),將鏈接的函數(shù)庫(kù)與相關(guān)的路徑填入rootwww # gcc sin.c -lm -L/usr/lib -I/usr/include# 在最終鏈接成 binary file 的時(shí)候這個(gè)命令較常執(zhí)行# -lm 指的是 libm.so 或 libm.a 這個(gè)函數(shù)庫(kù)文件# -L 后面接的
20、路徑是剛剛上面那個(gè)函數(shù)庫(kù)的搜索目錄# -I 后面接的是源碼內(nèi)的 include 文件的所在目錄Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.2.5 子任務(wù)子任務(wù)5 gcc的簡(jiǎn)易用法(編譯、參數(shù)與鏈接)的簡(jiǎn)易用法(編譯、參數(shù)與鏈接)# 將編譯的結(jié)果生成某個(gè)特定文件rootwww # gcc -o hello hello.c# -o 后面接的是要輸出的 binary file文件名 # 在編譯的時(shí)候,輸出較多的信息說(shuō)明rootwww # gcc -o hello hello.c -Wall# 加入 -Wall 之后,程序的編譯會(huì)變得較為嚴(yán)謹(jǐn)一點(diǎn),所以警告信息也會(huì)顯示出來(lái)Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用
21、教程(項(xiàng)目式)9.3 任務(wù)任務(wù)3 使用使用 make 進(jìn)行宏編譯進(jìn)行宏編譯 1 1. .為什么要用為什么要用make 2 2. .了解了解makefile 的基本語(yǔ)法與變量的基本語(yǔ)法與變量Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.3.1 子任務(wù)子任務(wù)1 為什么要用為什么要用make 先進(jìn)行目標(biāo)文件的編譯,最終會(huì)有四個(gè) *.o 的文件名出現(xiàn)。rootwww # gcc -c main.crootwww # gcc -c haha.crootwww # gcc -c sin_value.crootwww # gcc -c cos_value.c 再鏈接形成可執(zhí)行文件main,并加入 libm
22、的數(shù)學(xué)函數(shù),以生成 main 可執(zhí)行文件。rootwww # gcc -o main main.o haha.o sin_value.o cos_value.o -lm -L/usr/lib -L/libLinux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.3.1 子任務(wù)子任務(wù)1 為什么要用為什么要用make 本程序的運(yùn)行結(jié)果,必須輸入姓名、360 度角的角度值來(lái)計(jì)算。rootwww # ./main Please input your name: Bobby 90): 30 =輸入以 360 度角為主的角度Hi, Dear Bobby, nice to meet you. =這三行為輸出的結(jié)果The
23、 Sin is: 0.50The Cos is: 0.87Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.3.1 子任務(wù)子任務(wù)1 為什么要用為什么要用make如果可以的話,能不能一個(gè)步驟就全部完成上面所有的操作呢?那就是利用 make 這個(gè)工具。先試著在這個(gè)目錄下創(chuàng)建一個(gè)名為 makefile 的文件,代碼如下。# 先編輯 makefile 這個(gè)規(guī)則文件,內(nèi)容是制作出 main 這個(gè)可執(zhí)行文件rootwww # vim makefilemain: main.o haha.o sin_value.o cos_value.ogcc -o main main.o haha.o sin_value.o
24、cos_value.o -lm# 注意:第二行的 gcc 之前是Tab按鍵產(chǎn)生的空格 Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.3.1 子任務(wù)子任務(wù)1 為什么要用為什么要用make#. 嘗試使用 makefile 制訂的規(guī)則進(jìn)行編譯rootwww # rm -f main *.o =先將之前的目標(biāo)文件刪除rootwww # makecc -c -o main.o main.ccc -c -o haha.o haha.ccc -c -o sin_value.o sin_value.ccc -c -o cos_value.o cos_value.cgcc -o main main.o haha
25、.o sin_value.o cos_value.o -lm# 此時(shí) make 會(huì)去讀取 makefile 的內(nèi)容,并根據(jù)內(nèi)容直接去編譯相關(guān)的文件 Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.3.1 子任務(wù)子任務(wù)1 為什么要用為什么要用make# 在不刪除任何文件的情況下,重新運(yùn)行一次編譯的動(dòng)作rootwww # makemake: main is up to date.# 看到了吧!是否很方便呢?!只進(jìn)行了更新 (update) 的操作Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)9.3.2 子任務(wù)2 了解makefile 的基本語(yǔ)法與變量基本的 makefile 守則是這樣的:目標(biāo)(targ
26、et): 目標(biāo)文件1 目標(biāo)文件2 gcc -o 欲創(chuàng)建的可執(zhí)行文件 目標(biāo)文件1 目標(biāo)文件2Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)那該如何制作makefile文件呢?# 先編輯 makefile 來(lái)建立新的規(guī)則,此規(guī)則的目標(biāo)名稱為 clean rootwww # vim makefilemain: main.o haha.o sin_value.o cos_value.ogcc -o main main.o haha.o sin_value.o cos_value.o -lmclean:rm -f main main.o haha.o sin_value.o cos_value.o# 以新的
27、目標(biāo)(clean)測(cè)試,看看執(zhí)行 make 的結(jié)果rootwww # make clean =就是這里!通過(guò) make 以 clean 為目標(biāo)rm -rf main main.o haha.o sin_value.o cos_value.o9.3.2 子任務(wù)2 了解makefile 的基本語(yǔ)法與變量Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)如果想要先清除目標(biāo)文件再編譯 main 這個(gè)程序,就可以這樣輸入:“make clean main”,如下所示:rootwww # make clean mainrm -rf main main.o haha.o sin_value.o cos_value.occ -c -o main.o main.ccc -c -o haha.o haha.ccc -c -o sin_value.o sin_value.ccc -c -o cos_value.o cos_value.cgcc -o main main.o haha.o sin_value.o cos_value.o -lm9.3.2 子任務(wù)2 了解makefile 的基本語(yǔ)法與變量Linux網(wǎng)絡(luò)操作系統(tǒng)及應(yīng)用教程(項(xiàng)目式)可以再通過(guò)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 辦公門安裝合同范例
- 二建水利合同范本
- 2025年臨滄貨運(yùn)從業(yè)資格證模擬考試題庫(kù)
- 互惠合同范本
- 農(nóng)藥倉(cāng)儲(chǔ)配送合同范本
- 兼職中介合同范本
- 傳媒公司投資合同范本
- 勞動(dòng)合同范本 襄陽(yáng)
- saas服務(wù)合同范本
- 加工維修承攬合同范本
- 【重點(diǎn)易錯(cuò)題每日一練小紙條】二年級(jí)數(shù)學(xué)下冊(cè)
- 2024年小紅書(shū)初級(jí)營(yíng)銷師題庫(kù)
- 2022年公務(wù)員多省聯(lián)考《申論》真題(重慶二卷)及答案解析
- -2012橋梁樁基施工方案
- 山西電網(wǎng)新能源場(chǎng)站涉網(wǎng)試驗(yàn)流程使用說(shuō)明書(shū)
- 人教PEP版(2024)三年級(jí)上冊(cè)英語(yǔ)Unit 6《Useful numbers》單元作業(yè)設(shè)計(jì)
- 課題1 碳單質(zhì)的多樣性(第1課時(shí))課件九年級(jí)化學(xué)上冊(cè)人教版2024
- 康復(fù)醫(yī)學(xué)題庫(kù)與答案
- 1、DL-T5113.1-2019 水利水電工程單元工程質(zhì)量等級(jí)評(píng)定標(biāo)準(zhǔn)第一部分:土建工程用表
- 2024年醫(yī)院感染管理制度(四篇)
- 部編版語(yǔ)文三年級(jí)下冊(cè)綜合性閱讀-理解人物情感-課件-(共32張課件).課件
評(píng)論
0/150
提交評(píng)論