❶ C語言文件的編譯與執行的四個階段並分別描述
開發C程序有四個步驟:編輯、編譯、連接和運行。
任何一個體系結構處理器上都可以使用C語言程序,只要該體系結構處理器有相應的C語言編譯器和庫,那麼C源代碼就可以編譯並連接到目標二進制文件上運行。
1、預處理:導入源程序並保存(C文件)。
2、編譯:將源程序轉換為目標文件(Obj文件)。
3、鏈接:將目標文件生成為可執行文件(EXE文件)。
4、運行:執行,獲取運行結果的EXE文件。
(1)C單元測試的源文件直接參與編譯擴展閱讀:
將C語言代碼分為程序的幾個階段:
1、首先,源代碼文件測試。以及相關的頭文件,比如stdio。H、由預處理器CPP預處理為.I文件。預編譯的。文件不包含任何宏定義,因為所有宏都已展開,並且包含的文件已插入。我歸檔。
2、編譯過程是對預處理文件進行詞法分析、語法分析、語義分析和優化,生成相應的匯編代碼文件。這個過程往往是整個程序的核心部分,也是最復雜的部分之一。
3、匯編程序不直接輸出可執行文件,而是輸出目標文件。匯編程序可以調用LD來生成可以運行的可執行程序。也就是說,您需要鏈接大量的文件才能獲得「a.out」,即最終的可執行文件。
4、在鏈接過程中,需要重新調整其他目標文件中定義的函數調用指令,而其他目標文件中定義的變數也存在同樣的問題。
❷ 用 C 語言編寫的源文件經過編譯,若沒有產生編譯錯誤,則系統將( )。
答案是錯誤的,系統將生成目標文件,選B。因為C語言中編譯程序是把一個源程序翻譯成目標程序的工作過程。這一過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優化;目標代碼生成。在語法分析過程中發現有語法錯誤,給出提示信息,沒有錯誤則生成目標文件。
C語言通過匯編把匯編語言代碼翻譯成目標機器指令。對於被翻譯系統處理的每一個C語言源程序,都將最終經過這一處理而得到相應的目標文件。目標文件中所存放的也就是與源程序等效的目標的機器語言代碼。
C語言的源文件成為目標文件的過程:
1、源文件經過預處理,生成.i的文件 (預處理器cpp)。
2、將預處理後的文件轉換成匯編語言,生成文件.s文件。
3、從匯編變為目標代碼(機器代碼)生成.o(.obj)的文件(匯編器as)。
4、連接目標代碼,生成可執行程序(連接器ld)。
❸ 我是學習C語言的新手,編譯出現源文件後怎樣讓它運行。
首先,我覺得你可能概念不是很清楚,C語言的源文件的產生是不需要經過「編譯」的,而應該是通過編輯器「編輯」產生的,C語言源文經(.c)過編譯以後就會生成可執行文件(在Windows平台下生成的可執行文件是*.exe)。如果你想學習C語言的話,不知道怎樣對原文件進行編譯,可以安裝一個Visual C++ 6.0的編輯器,在VC6.0里寫完程序後,直接點裡面的編譯按鈕進行編譯就行,很簡單的。
❹ 用 C 語言編寫的源文件經過編譯,若沒有產生編譯錯誤,則系統將
本題正確答案應為B選項。
C選項為錯誤答案。
原因如下:
1、編譯程序僅僅是將源語言編寫的源程序轉換為目標程序。
2、編譯是把高級語言變成計算機可以識別的2進制語言。
3、編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優化;目標代碼生成。
顯然,編譯的過程中並沒有運行程序輸出結果的步驟,編譯的結果是生成目標文件(代碼)。
因此C選項為錯誤答案,B選項為正確答案。
編譯原理圖如下:
目標代碼(目標文件)生成是編譯的最後一個階段。目標代碼生成器把語法分析後或優化後的中間代碼變換成目標代碼。目標代碼有三種形式:
1、 可以立即執行的機器語言代碼,所有地址都重定位;
2、待裝配的機器語言模塊,當需要執行時,由連接裝入程序把它們和某些運行程序連接起來,轉換成能執行的機器語言代碼;
3、匯編語言代碼,須經過匯編程序匯編後,成為可執行的機器語言代碼。
目標代碼生成階段應考慮直接影響到目標代碼速度的三個問題:一是如何生成較短的目標代碼;二是如何充分利用計算機中的寄存器,減少目標代碼訪問存儲單元的次數;三是如何充分利用計算機指令系統的特點,以提高目標代碼的質量。
編譯_網路
❺ C/C++源文件直接交叉編譯生成.so文件供安卓應用程序調用,可以嗎
Jni調用就行了,是要按規則寫介面api,如果介面很多,也沒法,那是你的業務問題,要重新設計業務邏輯。我們之前用的c++單獨交叉編譯一個進程,和安卓界面用tcp通信,如果介面多也以為著協議多,一樣的。
❻ C源程序經編譯形成的二進制代碼可以直接運行嗎
不可以直接運行,源程序是程序員寫給人看的,電腦執行的都是.EXE程序或者是二進制可執行代碼,所以得將源程序進行編譯連接然後才能生成可執行的程序也就是二進制的代碼。
源代碼(也稱源程序)是指未編譯的按照一定的程序設計語言規范書寫的文本文件,是一系列人類可讀的計算機語言指令。
在現代程序語言中,源代碼可以是以書籍或者磁帶的形式出現,但最為常用的格式是文本文件,這種典型格式的目的是為了編譯出計算機程序。
計算機源代碼的最終目的是將人類可讀的文本翻譯成為計算機可以執行的二進制指令,這種過程叫做編譯,通過編譯器完成。
(6)C單元測試的源文件直接參與編譯擴展閱讀:
如果按照源代碼類型區分軟體,通常被分為兩類:自由軟體和非自由軟體。自由軟體一般是不僅可以免費得到,而且公開源代碼;相對應地,非自由軟體則是不公開源代碼。所有一切通過非正常手段獲得非自由軟體源代碼的行為都將被視為非法。
對於計算機而言,並不存在真正意義上的「好」的源代碼;然而作為一個人,好的書寫習慣將決定源代碼的好壞。源代碼是否具有可讀性,成為好壞的重要標准。軟體文檔則是表明可讀性的關鍵。
對軟體進行說明,即對軟體的編寫進行說明。為數不少的初學者,甚至少數有經驗的程序員都忽視軟體說明的編寫,因為這部分不會在生成的程序中直接顯示,也不參與編譯。
但是注釋代碼對軟體的學習、分享、維護和軟體復用都有巨大的好處。因此,書寫軟體說明在業界被認為是能創造優秀程序的良好習慣,一些公司也硬性規定必須書寫。
網路-源代碼 (一系列人類可讀的計算機語言指令)
❼ c ++裡面有多個源文件怎麼編譯
1。點擊「文件」菜單按鈕,選擇「新建」;
2。在「工程」選項中選擇「Win32 Console Application」,然後輸入工程名稱;
3。不急著按確定,選旁邊的「文件」的選項卡,然後選「C++Source File」,輸入文件名(以.c結束例如: sort.c)按確定;
4。在後綴為.c的文本編輯框內輸入源代碼;
5。在文本編輯框右上有一些六個小圖標,compile(滑鼠久放這些圖標上都會出現這些圖標的名字),build,go等,從最左邊一個圖標(compile)按起,彈出對話框都按確定,一個圖標OK就按下一個,最後一個是go吧,不是很記得了,可是ok都會出現DOS的對話框。
ok就這樣了~多的我也不會~有些是分頭文件(Header File)和源文件(Source File),那在第二步的時候就要注意是選「C++Source File」還是「C++Header File」了!
當然也可以直接選「C++Source File」或「C++Header File」了! 要注意CPP是C++文件的後輟 .C是C語言的後輟
❽ 後綴為.c的C語言源程序可以單獨進行編譯嗎
1、可以進行編譯。
2、C語言源程序後綴為.c ,在windows平台上,編譯後的後綴為.obj,連接後的後綴為.exe。在Linux平台上,預處理後的文件擴展名一般為.i,C語言編譯器編譯後的文件擴展名一般為.S,是一個匯編代碼文件,匯編器編譯後的文件擴展一般為.o,鏈接器生成的可執行文件默認為.out。
❾ Visual Studio 2019怎麼編譯C語言源程序
1、首先,打開C語言編輯器工具,然後在該工具中編寫程序的源代碼,如下圖所示,然後進入下一步。
❿ C語言源文件編譯問題
標准庫已經是編譯好的程序了,一般是.obj文件組成,編譯程序將庫文件取出,然後連接好地址、分配內存,不會重新編譯的,編譯的是你寫的源文件。
換句話說,像printf這樣的函數已經編譯好了等你調用,已經是機器碼了。