九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類(lèi) > PPT文檔下載  

開(kāi)發(fā)工具安裝系統(tǒng)配置makefile.ppt

  • 資源ID:14780337       資源大?。?span id="24d9guoke414" class="font-tahoma">559.01KB        全文頁(yè)數(shù):43頁(yè)
  • 資源格式: PPT        下載積分:9.9積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開(kāi)放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.9積分
郵箱/手機(jī):
溫馨提示:
用戶(hù)名和密碼都是您填寫(xiě)的郵箱或者手機(jī)號(hào),方便查詢(xún)和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開(kāi),此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類(lèi)文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

開(kāi)發(fā)工具安裝系統(tǒng)配置makefile.ppt

Linux培訓(xùn)講義,基于Ubuntu,RHEL 1. 系統(tǒng)配置,makefile,教學(xué)內(nèi)容,Linux下開(kāi)發(fā)語(yǔ)言的選擇 Linux的環(huán)境變量 Java環(huán)境配置 C+環(huán)境配置 開(kāi)發(fā)環(huán)境選擇 IDE vs 編輯器 makefile,Linux開(kāi)發(fā)語(yǔ)言的選擇,主流的可選擇的主流開(kāi)發(fā)語(yǔ)言清單:,Linux開(kāi)發(fā)語(yǔ)言的選擇,我們會(huì)用到的語(yǔ)言: c Linux的母語(yǔ) c+ 高效的兼容c的面向?qū)ο笳Z(yǔ)言 Java “跨平臺(tái)設(shè)計(jì)良好的oo語(yǔ)言” Python 跨平臺(tái)用來(lái)替代傳統(tǒng)腳本的腳本 bash(shell) 最古老的腳本語(yǔ)言,Linux的環(huán)境變量,什么是環(huán)境變量 環(huán)境變量一般是指在操作系統(tǒng)中用來(lái)指定操作系統(tǒng)運(yùn)行環(huán)境的一些參數(shù)。 常用的環(huán)境變量 PATH 操作系統(tǒng)用來(lái)搜索文件的默認(rèn)路徑 PWD 當(dāng)前工作目錄,Linux的環(huán)境變量,設(shè)置環(huán)境變量 export 命令 例子:export test=value /etc/profile 啟動(dòng)計(jì)算機(jī)生效 .bashrc文件 登錄之后生效 顯示環(huán)境變量 顯示全部環(huán)境變量:env命令 顯示某個(gè)環(huán)境變量:echo變量名,Java環(huán)境配置,下載JDK 使用1.6+比較好。 解壓到指定目錄 設(shè)置環(huán)境變量:三個(gè) JAVA_HOME=/data/Development/java/ PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH 測(cè)試:java -v,hello world 注意把新添加的JDK的bin目錄追加在$PATH的最前面,這樣當(dāng)系統(tǒng)中安裝有多個(gè)JDK版本時(shí),程序會(huì)優(yōu)先搜尋排在最前面的JDK版本。,C+環(huán)境配置,使用包管理器安裝 yum或者apt-get安裝。 yum: yum install gcc gcc-c+ apt-get: apt-get intall build-essential 自己編譯一個(gè)gcc/g+ 不推薦,時(shí)間太長(zhǎng),容易出錯(cuò) 測(cè)試環(huán)境:gcc v,g+ -v,hello world,開(kāi)發(fā)環(huán)境選擇 IDE vs 編輯器,可選的IDE: eclipse +CDT,pyDev等。 code:blocks codelite anjunta Kdevelop 我們主要以eclipse為主。,開(kāi)發(fā)環(huán)境選擇 IDE vs 編輯器,eclipse+CDT的安裝方法 下載eclipse for linux 解壓到指定位置 下載CDT,放到eclipse的目錄下 配置eclipse環(huán)境建立連接,代碼格式等 測(cè)試環(huán)境Java工程,C+工程,開(kāi)發(fā)環(huán)境選擇 IDE vs 編輯器,可選的編輯器: emacs vim gedit Kate 我們主要以vim和gedit為主,makefile,回顧:C/C+代碼是怎么變成程序的 預(yù)處理 編譯 連接 生成匯編代碼 生成機(jī)器碼,makefile,問(wèn)題提出: 當(dāng)一個(gè)工程有很多源文件 文件依賴(lài),編譯繁瑣,需要重新編譯很多 gcc/g+編譯器 make工具 makefile,makefile,依賴(lài)關(guān)系 依賴(lài)關(guān)系定義了最終應(yīng)用程序的每個(gè)文件和源文件之間的關(guān)系。 在makefile中這些規(guī)則的寫(xiě)法如下: target: file1 file2 注意冒號(hào)后面的空格,文件之間的空格,makefile,依賴(lài)關(guān)系例子: myapp: main.o 2.o 3.o main.o: main.c main.c a.h 2.o: 2.c a.h b.h 3.o: 2.c b.h c.h,makefile,規(guī)則 規(guī)則定義了目標(biāo)的生成方式,上面的例子中,要怎樣重新生成2.o呢?正常情況下只需要用 gcc -c 2.c 但是如果需要指定頭文件目錄,或者為了今后的調(diào)試需要設(shè)置符號(hào)信息選項(xiàng)該怎么做? 注意:規(guī)則所在的行必須用制表符tab開(kāi)頭,否則會(huì)導(dǎo)致make錯(cuò)誤。,makefile,make命令的選項(xiàng)和參數(shù) k當(dāng)make命令遇到錯(cuò)誤的時(shí)候繼續(xù)執(zhí)行 n讓make輸出將要執(zhí)行的操作步驟 f指定makefile的文件名,makefile,簡(jiǎn)單的makefile myapp: main.o 2.o 3.o gcc -o myapp main.o 2.o 3.o main.o: main.c a.h gcc -c main.c 2.o: 2.c a.h b.h gcc -c 2.c 3.o: 3.c b.h c.h gcc -c 3.c make -f Makefile,makefile,make處理makefile文件中的依賴(lài)關(guān)系,確定需要?jiǎng)?chuàng)建的文件以及創(chuàng)建順序。雖然上面把myapp放在最前面,但是make能判斷出創(chuàng)建文件的正確順序。它調(diào)用在規(guī)則部分給出的命令用來(lái)創(chuàng)建相應(yīng)的文件,同時(shí)會(huì)在執(zhí)行時(shí)在屏幕上將命令顯示出來(lái)。 測(cè)試:改變一個(gè)源文件看看makefile能否處理這個(gè)情況。,makefile,makefile中的注釋 makefile中的注釋以#開(kāi)頭,一直延續(xù)到這一行的結(jié)束,同C/C+的行注釋/類(lèi)似。,makefile,問(wèn)題的產(chǎn)生: 上面基本上已經(jīng)介紹了makefile的全部?jī)?nèi)容,但是在實(shí)際項(xiàng)目使用中還有一定的問(wèn)題,比如項(xiàng)目中需要在不同的平臺(tái)上更換編譯器,項(xiàng)目目錄結(jié)構(gòu)發(fā)生變化等。 宏: 定義:macro=value 取消:macro= 引用:$macro,makefile,宏的作用: 設(shè)置編譯器的選項(xiàng) 消除編譯過(guò)程中的硬編碼(hard code) 使用宏的makefile例子,makefile,all: myapp #which compiler CC = gcc #where are include files kept INCLUDE = . #options for development CFLAGS = -g -Wall -ansi #options for release #CFLAGS = -Wall -ansi myapp: main.o 2.o 3.o $CC -I$INCLUDE -o myapp main.o 2.o 3.o main.o: main.c a.h $CC -I$INCLUDE -c main.c 2.o: 2.c a.h b.h $CC -I$INCLUDE -c 2.c 3.o: 3.c b.h c.h $CC -I$INCLUDE -c 3.c,makefile,makefile的內(nèi)置宏 $?: 列出當(dāng)前目標(biāo)所依賴(lài)的文件列表中比當(dāng)前目標(biāo)文件還要新的文件 $: 當(dāng)前目標(biāo)的名字 $<: 當(dāng)前依賴(lài)文件的名字 $*: 不包括后綴名的當(dāng)前依賴(lài)文件的名字,makefile,多個(gè)目標(biāo) 通常需要制作的目標(biāo)文件不止一個(gè),或者希望將多個(gè)規(guī)則集中到一處執(zhí)行,通過(guò)擴(kuò)展makefile即可達(dá)到這一目的。 例子: 給上面的例子增加兩個(gè)選項(xiàng): clean用來(lái)清除不需要的目標(biāo)文件 Install用來(lái)將編譯好的目標(biāo)放到指定目錄,makefile,INSTDIR = /usr/local/bin #where are include files kept INCLUDE = . #options for development CFLAGS = -g -Wall -ansi #options for release #CFLAGS = -Wall -ansi myapp: main.o 2.o 3.o $CC -I$INCLUDE -o myapp main.o 2.o 3.o main.o: main.c a.h $CC -I$INCLUDE -c main.c 2.o: 2.c a.h b.h $CC -I$INCLUDE -c 2.c 3.o: 3.c b.h c.h $CC -I$INCLUDE -c 3.c clean: -rm main.o 2.o 3.o install: if -d $INSTDIR; then cp myapp $INSTDIR; CHMOD a+x $INSTDIR/myapp; chmod og-w $INSTDIR/myapp; echo Installed in $INSTDIR; else echo $INSTDIR does not exist.; fi;,makefile,注意事項(xiàng): all只定義了myapp這一個(gè)目標(biāo),如果在執(zhí)行make的時(shí)候沒(méi)有指定目標(biāo),make的默認(rèn)行為就是創(chuàng)建第一個(gè)目標(biāo)all 增加了兩個(gè)新的目標(biāo)clean和install rm命令用-開(kāi)頭,意義是忽略rm命令的執(zhí)行結(jié)果 clean命令沒(méi)有依賴(lài)項(xiàng),在執(zhí)行make clean的時(shí)候,該項(xiàng)目對(duì)應(yīng)的規(guī)則總會(huì)被執(zhí)行。,makefile,install目標(biāo)依賴(lài)于myapp,make知道必須首先創(chuàng)建myapp,然后才能執(zhí)行制作該目標(biāo)的所需要的其他命令。 用于制作install目標(biāo)的規(guī)則由幾個(gè)shell腳本命令組成。由于make命令在執(zhí)行規(guī)則時(shí)會(huì)調(diào)用一個(gè)shell,并且會(huì)針對(duì)每個(gè)命令調(diào)用一個(gè)shell,這時(shí)候必須在上面每行代碼的結(jié)尾加上一個(gè)反斜杠。讓所有的shell腳本命令在邏輯上處于同一行,并作為一個(gè)整體只傳遞給一個(gè)shell執(zhí)行。這個(gè)命令用開(kāi)頭,表示make在執(zhí)行這些規(guī)則之前不會(huì)在標(biāo)準(zhǔn)輸出上顯示命令本身。,makefile,目標(biāo)install順序執(zhí)行多個(gè)命令使目標(biāo)安裝到指定位置。本例中,在執(zhí)行shell命令過(guò)程中,make不檢測(cè)上一條命令是否成功。如果需要檢測(cè)上調(diào)命令的執(zhí)行結(jié)果,則可以將這些命令用 then cp myapp $INSTDIR; CHMOD a+x $INSTDIR/myapp; chmod og-w $INSTDIR/myapp; echo Installed in $INSTDIR; else echo $INSTDIR does not exist.; fi;,makefile,makefile和子目錄 有時(shí)我們希望把組成一個(gè)靜態(tài)庫(kù)的幾個(gè)文件從主文件中分離出來(lái),并將它們保存在一個(gè)目錄中。用make來(lái)完成這個(gè)任務(wù)的方法有兩個(gè)。,makefile,方法1: 首先在子目錄中編寫(xiě)出第二個(gè)makefile其作用是編譯該目錄下的源文件生成一個(gè)靜態(tài)庫(kù),然后將生成的靜態(tài)庫(kù)copy到上一級(jí)的目錄中。在上一級(jí)目錄中的makefile包含一條用于生成靜態(tài)庫(kù)的規(guī)則,這條規(guī)則會(huì)調(diào)用第二個(gè)makefile: mylib.a: (cd mylibdir;$MAKE)#注意會(huì)避免使用新shell make調(diào)用這條規(guī)則創(chuàng)靜態(tài)庫(kù)的時(shí)候,會(huì)切換到mylibdir中,然后調(diào)用新的make來(lái)管理函數(shù)庫(kù)。,makefile,方法2: 在原來(lái)的makefile中增加一些宏。新增宏通過(guò)在已經(jīng)見(jiàn)過(guò)的宏的末尾追加規(guī)則: .c.o $CC $FLAGS -c $D/$<F -o $D/$F 上述規(guī)則編譯子目錄中的源文件并將目標(biāo)文件放在該子目錄中然后用下面的規(guī)則來(lái)更新當(dāng)前目錄下的靜態(tài)庫(kù)。 mylib.a: mydir/2.o mydir/3.o ar -rv mylib.a $?,makefile,makefile總共包含兩樣?xùn)|西: 目標(biāo)依賴(lài)關(guān)系 目標(biāo)的生成方法,

注意事項(xiàng)

本文(開(kāi)發(fā)工具安裝系統(tǒng)配置makefile.ppt)為本站會(huì)員(za****8)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話(huà):18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!