『壹』 C語言文件的編譯與執行的四個階段並分別描述
開發C程序有四個步驟:編輯、編譯、連接和運行。
任何一個體系結構處理器上都可以使用C語言程序,只要該體系結構處理器有相應的C語言編譯器和庫,那麼C源代碼就可以編譯並連接到目標二進制文件上運行。
1、預處理:導入源程序並保存(C文件)。
2、編譯:將源程序轉換為目標文件(Obj文件)。
3、鏈接:將目標文件生成為可執行文件(EXE文件)。
4、運行:執行,獲取運行結果的EXE文件。
(1)編譯安裝的四大步驟擴展閱讀:
將C語言代碼分為程序的幾個階段:
1、首先,源代碼文件測試。以及相關的頭文件,比如stdio。H、由預處理器CPP預處理為.I文件。預編譯的。文件不包含任何宏定義,因為所有宏都已展開,並且包含的文件已插入。我歸檔。
2、編譯過程是對預處理文件進行詞法分析、語法分析、語義分析和優化,生成相應的匯編代碼文件。這個過程往往是整個程序的核心部分,也是最復雜的部分之一。
3、匯編程序不直接輸出可執行文件,而是輸出目標文件。匯編程序可以調用LD來生成可以運行的可執行程序。也就是說,您需要鏈接大量的文件才能獲得「a.out」,即最終的可執行文件。
4、在鏈接過程中,需要重新調整其他目標文件中定義的函數調用指令,而其他目標文件中定義的變數也存在同樣的問題。
『貳』 linux上的編譯安裝的基本概念是什麼,具體的流程又是怎麼個樣子
計算機運行的程序都是二進制的代碼,那麼我們所用的編程語言都是自然語言中的字元,那麼就需要有一種機制來將這些轉化成二進制代碼,那麼根據轉化機制不一樣,編程語言(軟體 產生的源頭)分兩大類 解釋型 編譯型,解釋型就不說了,編譯型就是在寫好程序的源碼以後對程序進行編譯,編譯成二進制的可執行代碼。
在linux中很多軟體的源碼都會伴隨著軟體一起發布,軟體就是經過編譯的一些二進制的文件,這些二進制文件由源碼編譯而來。所以當我們拿到了軟體的源碼的時候,可以根據源碼編譯出軟體,然後對軟體進行安裝,這就是你所說的編譯安裝了,對於非電腦專業的人不需要了解那麼多,涉及的東西比較多,要知道在編譯的時候需要設置編譯參數的,,
所以會拿deb rpm包來安裝就行了。。使用打包好的二進制包安裝的另外的好處就是可以由包管理系統進行管理可以方便的對軟體包進行安裝升級和卸載,如果是源碼編譯那麼就需要自己手動的管理了。
具體的流程沒那麼復雜,linux軟體發布的源碼都是有標准格式 的,通常是tar.gz tar.bz2這樣的壓縮包,
tar xvf xxx.tar.gz 解壓源碼包
cd xxx 進入源碼目錄
more INSTALL 或者more README 閱讀源碼包里的安裝說明,看不懂英語的可以跳過這步
./configure 參數 配置編譯參數;最常見的是prefix=安裝路徑 這樣可以把軟體安裝到一個指定目錄而不是安裝到系統的文件結構中(linux的文件結構可以參考FHS標准規范里的定義)
make 當上一步正確的執行後會生成一個Makefile文件,使用make命令可以對軟體源碼進行編譯
make install 安裝(可能會需要root許可權)
//部分軟體還會提供make test 這樣的測試,在安裝前可以運行make test 來測試軟體是否編譯正確。
『叄』 大家初學c語言用的編輯器和編譯器是怎麼下載安裝詳細步驟
1.Code::Blocks 是一個開放源碼的全功能的跨平台C/C++集成開發環境.
相比於基於Delphi的Dev-C++共享 C++IDE,Code::Blocks是開放源碼軟體Code::Blocks由純粹的C++語言開發完成,它使用了蓍名的圖形界面庫 wxWidgets(2.6.2unicode)版。對於追求完美的C++程序員,再也不必忍受Eclipse的緩慢,再也不必忍受VS.NET的龐大和高昂的價格。
2.安裝主要步驟
安裝Code::Blocks第一個正式版本 ver 8.02。
安裝Code::Blocks的最新升級包。
安裝Code::Blocks的簡體中文語言包。
完成Code::Blocks的基本配置。
3.運行安裝程序
下載得到一個執行的文件,雙擊後運行,請按照以下說明進行安裝。
選擇「Full/完整」安裝,以免重要插件沒有被安裝上。
安裝目標路徑,不要帶有空格,或者漢字;這一點並不是Code::Blocks的限制,而是因為mingw32里的一些命令行工具,似乎對長目錄或帶空格的目錄支持有點小問題,我估計漢字目錄也會出問題,但沒試過。一句話,就裝在根目錄下的x(AB,C,D):CodeBlocks即可。
4.安裝中文語言包
首先,請在 X:CodeBlocksshareCodeBlocks 建立一個子文件夾:locale,注意 locale 全為小寫字母。簡體漢字的語言包做了較大改進,不過仍然沒改完,另外,一些插件在當前版本本來就無法漢化的,所以還有一部分內容是英語的。
點擊下載d2school版Code::Blocks語言包。
下載後,請解壓到前述的locale目錄下,則locale目錄下,應出現zh_CN和zh_TW兩個子目錄。重新啟動Code::Blocks,點擊主菜單的「Settings」,選擇「Enviornment」。出現的對話框中,左邊選中「View」,右邊打勾「Internationalization (needs restart)」,並在後面的復合框中選中「Chinese (Simplified)」。確認退出本對話框。
5.必要配置
又分為兩步,第一步用於檢查系統環境變數,第二步用於檢查Code::Blocks本身的配置。事實上,這也是很多類似IDE軟體都需要做的准備工作之一。
雖然在多數情況下這兩樣配置在CodeBlocks安裝以後,就已經正確配置上了。但是如果這兩樣配置有誤,會帶來Code::Blocks運行時的很多奇怪的問題,我們還是直接檢查確保一下,同時加以了解。
檢查並配置操作系統環境變數
在桌面上,滑鼠右鍵點擊「我的電腦」,選擇彈出菜單中的「屬性」。在屬性對話框中,選中「高級」屬性頁。點擊其下「環境變數」按鈕,將新彈出一個對話框,如下圖,選中「系統變數」下的「PATH」一行。然後點擊其下「編輯」按鈕,再次彈出一個對話框。
全選,並復制(Ctrl + C)第二行的內容。然後打開寫字板程序,檢查以下內容是否出現在復制過來的文字中:
X:CodeBlocksMinGWin; X:.4.5;
其中「X:CodeBlocks」應為您本機安裝Code::Blocks時的路徑。
如果沒有,將所缺少的部分,錄入到配置內容,所插入位置最好微靠前一點,注意包括其中的分號。
修改完之後,別忘了復制修改後的全部內容,粘貼,替換一路「確定」,關掉各級對話框。
6.Code::Blocks全局編譯器設置
請大家首先到 X:CodeBlocksMinGWin下,搜索,檢查有沒有存在以下文件:
mingw32-gcc.exe —— 這是C的編譯器。
mingw32-g++.exe —— 這是C++的編譯器及動態庫的連接器。
ar.exe —— 這是靜態庫的連接器。
gdb.exe —— 這里調試器。
windres.exe —— windows下資源文件編譯器。
mingw32-make.exe —— 製作程序。
都沒有問題,請點擊c::b主菜單「設置」(漢化前的"Settings"),這次選中「編譯器和調試器設置...」。,出現的對話框中,右邊選中「全局編譯器設置」
『肆』 如何在linux平台上編譯安裝zlib軟體
1、首先是編譯環境,需要最基本的gcc,autotool工具,不同平台不同的安裝方式,具體可以網路一下
2、在linux下,開源軟體的編譯安裝會有固定的通用步驟:
下載源碼上傳到伺服器上;
解壓源碼包,一般包的後綴是tar.gz、tgz、tar.gz2,這些壓縮包其實都可以使用同一個命令進行解壓 tar xvf tarfile, 進入源碼目錄
源碼目錄下一般會有軟體相關的README、install文檔,簡單的閱讀以下,多數情況下都會有相關的編譯步驟,以及依賴庫
通過步驟:./configure;make && make install
./configure --help可以獲取幫助,用來指定安裝路徑,依賴庫的路徑,編譯選項等
3、對於在linux下編譯zlib請參考步驟2,相信你能行,加油
『伍』 Linux系統下源代碼編譯方式安裝軟體的大致步驟
是什麼語言呢? linux下多數用gcc
『陸』 請簡述嵌入式linux內核的編譯過程
編譯及安裝簡要步驟:
編輯Makefile版本信息
定義內核特性,生成配置文件.config,用於編譯:make xconfig
編譯內核:make
安裝內核:make install
安裝模塊:make moles_install
具體步驟如下:
內核配置
先定義內核需要什麼特性,並進行配置。內核構建系統(The kernel build system)遠不是簡單用來構建整個內核和模塊,想了解更多的高級內核構建選項,你可以查看 Documentation/kbuild 目錄內的內核文檔。
可用的配置命令和方式:
make menuconfig
命令:make menuconfig
編譯內核
編譯和安裝內核
編譯步驟:
$ cd /usr/src/linux2.6
$ make
安裝步驟 (logged as
$ make install
$ make moles_install
提升編譯速度
多花一些時間在內核配置上,並且只編譯那些你硬體需要的模塊。這樣可以把編譯時間縮短為原來的1/30,並且節省數百MB的空間。另外,你還可以並行編譯多個文件:
$ make -j <number>
make 可以並行執行多個目標(target)(KEMIN:前提是目標規則間沒有交叉依賴項,這個怎麼做到的?)
$ make -j 4
即便是在單處理器的工作站上也會很快,讀寫文件的時間被節省下來了。多線程讓CPU保持忙碌。
number大於4不見得有效了,因為上下文切換過多反而降低的工作的速度。
make -j <4*number_of_processors>
內核編譯tips
查看完整的 (gcc, ld)命令行: $ make V=1
清理所有的生成文件 (to create patches...): $ make mrproper
部分編譯:$ make M=drivers/usb/serial
單獨模塊編譯:$ make drivers/usb/serial/visor.ko
最終生成的文件
vmlinux 原始內核鏡像,非壓縮的
arch/<arch>/boot/zImage zlib壓縮的內核鏡像(Default image on arm)
arch/<arch>/boot/bzImage bzip2壓縮的內核鏡像。通常很小,足夠放入一張軟盤(Default image on i386)
『柒』 centos軟體是有四種安裝方式嗎yum,rpm,二進制和源代碼
『捌』 高級語言的編譯過程,經過哪幾個步驟
開發C程序有四個步驟:編輯、編譯、連接和運行。
任何一個體系結構處理器上都可以使用C語言程序,只要該體系結構處理器有相應的C語言編譯器和庫,那麼C源代碼就可以編譯並連接到目標二進制文件上運行。
1、預處理:導入源程序並保存(C文件)。
2、編譯:將源程序轉換為目標文件(Obj文件)。
3、鏈接:將目標文件生成為可執行文件(EXE文件)。
4、運行:執行,獲取運行結果的EXE文件。
(8)編譯安裝的四大步驟擴展閱讀:
將C語言代碼分為程序的幾個階段:
1、首先,對源代碼文件進行測試。以及相關的頭文件,比如Stdio。H.CPP預處理為。我的文件。預編譯。該文件不包含任何宏定義,因為所有宏都已展開,且包含的文件已插入。我提起。
2、編譯過程是對預處理後的文件進行詞法分析、語法分析、語義分析和優化,生成相應的匯編代碼文件。這個過程通常是整個程序的核心部分,也是最復雜的過程之一。
3、匯編程序不直接輸出可執行文件,而是輸出目標文件。匯編程序可以調用LD來生成可運行的可執行程序。也就是說,您需要鏈接到大量文件以獲得最終可執行文件「a.out」。
4、在鏈接過程中,其他目標文件中定義的函數調用指令需要重新調整,而其他目標文件中定義的變數也存在同樣的問題。
『玖』 Linux中源碼編譯安裝程序包括哪些基本步驟
第一步:創建編譯腳本
進入到源碼目錄 執行 ./configure --prefix=/.../.....(--prefix=後面是想要安裝到的目錄)
第二部:編譯
執行 make
第三部:安裝
執行 make install
當然上面這幾部都是最基本的步驟,如果想優化編譯,要在./configure 後面加參數,或者configure之後手動修改Makefile文件 如O2(優化等級) FLAGS 等編譯參數的修改。
--------------------------------------------------------------------------------------------------------------
以上都是源碼包的編譯
如果是自己寫的C代碼 直接 用gcc編譯即可。
例如 編譯test.c
執行 gcc -o test test.c即可將test.c編譯為可執行的文件 test
自己打出來的 要採納啊!
『拾』 簡單描述編譯的幾個處理步驟
編譯過程分為分析和綜合兩個部分,並進一步劃分為詞法分析、語法分析、語義分析、代碼優化、存儲分配和代碼生成等六個相繼的邏輯步驟。這六個步驟只表示編譯程序各部分之間的邏輯聯系,而不是時間關系。
編譯過程既可以按照這六個邏輯步驟順序地執行,也可以按照平行互鎖方式去執行。在確定編譯程序的具體結構時,常常分若干遍實現。對於源程序或中間語言程序,從頭到尾掃視一次並實現所規定的工作稱作一遍。每一遍可以完成一個或相連幾個邏輯步驟的工作。
(10)編譯安裝的四大步驟擴展閱讀:
對於c編譯程序來說,其語言的特點如下:
1、c語言是一種結構化語言。它層次清晰,便於按模塊化方式組織程序,易於調試和維護,而且表現能力和處理能力極強。
2、c語言具有豐富的運算符和數據類型,便於實現各類復雜的數據結構。它還可以直接訪問內存的物理地址,進行位(bit)一級的操作。
3、由於c語言實現了對硬體的編程操作,因此集高級語言和低級語言的功能於一體。它既可用於系統軟體的開發,也適合於應用軟體的開發。
4、此外,c語言還具有效率高、可移植性強等特點。因此它廣泛地移植到了各類各型計算機上,從而形成了多種版本。