導航:首頁 > 源碼編譯 > 如何編譯運行c語言源程序

如何編譯運行c語言源程序

發布時間:2024-11-07 10:51:30

㈠ c語言編程自學教程怎麼運行c語言代碼

計算機不能直接識別和執行用高級語言寫的指令,必須用編譯程序把C源程序翻譯成二進制形式的目標程序,然後再將該目標程序與系統的函數庫以及其他目標程序連接起來,形成可執行的目標程序。
在編好一個C源程序後,怎樣上機進行編譯和運行呢?一般要經過以下幾個步驟:
(1)上機輸入和編輯源程序。通過鍵盤向計算機輸入程序,如發現有錯誤,要及時改正。最後將此源程序以文件形式存放在自己指定的文件夾內,文件用.c作為後綴,生成源程序文件,如f.c
(2)對源程序進行編譯,先用C編譯系統提供的「預處理器」對程序中的預處理指令進行編譯預處理。例如,對於#include指令來說,就是將stdio.h頭文件的內容讀進來,取代#include行。由預處理得到的信息和程序其他部分一起,組成一個完整的,可以用來進行正式編譯的源程序,然後由編譯系統對該源程序進行編譯。編譯的作用首先是對源程序進行檢查,判斷它有無語法方面的錯誤,如有,則發出「出錯信息」,告訴編程人員認真檢查改正。修正程序後重新進行編譯,如有錯,再發出「出錯信息」。如此反復進行,直到沒有語法錯誤為止。這時,編譯程序自動把源程序轉換為二進制形式的目標程序,如果不特別指定,此目標程序一般也存放在用戶當前目錄下,此時源文件沒有消失。
在用編譯系統對源程序進行編譯時,自動包括了預編譯和正式編譯兩個階段,一氣呵成。用戶不必分別發出二次指令。
(3)進行連接處理。經過編譯所得到的二進制目標文件(後綴為.obj)還不能供計算機直接執行。前面也說明:一個程序可能包含若干個源程序文件,而編譯是以源程序文件為對象的,一次編譯只能得到與一個源程序文件相對於的目標文件,它只是整個程序的一部分,必須把所有的編譯後得到的目標模塊連接裝配起來,再與函數庫相連接成一個整體,生成一個可供計算機執行的目標程序,稱為可執行程序,在Visual C++中其後綴為.exe,如f.exe。
即使一個程序只包含一個源程序文件,編譯後得到的目標程序也不能直接運行,也要經過連接階段,因為要與函數庫進行連接,才能生成可執行程序。
以上連接的工作是由一個稱為「連接編輯程序」的軟體來實現的。
(4)運行可執行程序,得到運行結果。
以上過程如圖所示,其中實線表示操作流程,虛線表示文件的輸入輸出。例如編輯後得到一個源程序文件f.c,然後在進行編譯時再將源程序文件f.c輸入,經過編譯得到目標程序文件f.obj,再將所有目標模板輸入計算機,與系統提供的庫函數等進行連接,得到可執行的目標程序f.exe,最後把f.exe輸入計算機,並使之運行得到結果。

一個程序從編寫到運行成功,並不是一次成功的,往往要經過多次反復。編寫好的程序並不一定能保證正確無誤,除了用人工方式檢查外,還須藉助編譯系統來檢查有無語法錯誤。從圖中可以看到:如果在編譯過程中發現錯誤,應當重新檢查源程序,找出問題,修改源程序,並重新編譯,直到無錯為止。有時編譯過程未發現錯誤,能生成可執行程序,但是運行的結果不正確。一般情況下,這不是語法方面的錯誤,而可能是程序邏輯方面的錯誤,例如計算公式不正確、賦值不正確等,應當返回檢查源程序,並改正錯誤。
為了編譯、連接和運行C程序,必須要有相應的編譯系統。目前使用的很多C編譯系統都是集成環境(IDE)的,把程序的編輯、編譯、連接和運行等操作全部集中在一個界面上進行,功能豐富,使用方便,直觀易用。
寫出源程序後可以用任何一種編譯系統對程序進行編譯和連接工作,只要用戶感到方便、有效即可。20世紀90年代,Turbo C 2.0用得比較多,但Turbo C 2.0是用於DOS環境的,在進入Turbo C集成環境後,不能用滑鼠進行操作,主要通過鍵盤選擇菜單,不大方便。有的人改用Turbo C++ 3.0,它具有方便、直觀和易用的界面,雖然它也是DOS環境下的集成環境,但可以用滑鼠操作菜單,因此在Windows環境下使用也很方便。近年來,不少人用Visual C++對C程序進行編譯。Visual C++ 6.0既可以對C++程序進行編譯,也可以對C程序進行編譯。
不應當只會使用一種編譯系統,無論用哪一種編譯系統,都應當能舉一反三,在需要時會用其他編譯系統進行工作。

㈡ c語言寫完代碼後怎麼運行

在C語言寫完代碼後,需要通過編譯器將源代碼編譯成可執行文件,然後在相應的操作系統中運行這個可執行文件。

C語言是一種需要編譯的編程語言,它的源代碼需要被轉換成機器碼才能在計算機上執行。這個過程通常分為兩個步驟:編譯和鏈接。

1. 編譯:編譯器將C語言源代碼(.c文件)轉換成目標文件(通常是.o文件或.obj文件),這個文件包含了源代碼轉換成的機器碼,但是還不能直接執行,因為它可能還依賴於其他目標文件或庫。在這個階段,編譯器還會檢查源代碼中的語法錯誤。

2. 鏈接:鏈接器將一個或多個目標文件以及可能需要的庫文件合並成一個可執行文件(在Windows系統中通常是.exe文件,在Unix/linux系統中沒有特定的擴展名)。這個可執行文件包含了程序運行所需的所有機器碼和其他資源。

例如,如果你在Linux系統中使用GCC編譯器,你可以通過以下命令來編譯和運行C語言程序:

bash

gcc -o hello_world hello_world.c # 編譯

./hello_world # 運行

這里,“gcc”是GNU編譯器集合中的C語言編譯器,“-o hello_world”指定輸出文件名為“hello_world”(在Linux中,如果不指定輸出文件名,GCC會默認生成一個名為“a.out”的可執行文件),“hello_world.c”是源代碼文件。運行可執行文件時,需要在前面加上“./”來表示當前目錄。

如果你在Windows系統中使用Visual Studio等集成開發環境(IDE),編譯和運行的過程通常會被IDE自動化。你只需要點擊“運行”或“調試”按鈕,IDE就會自動完成編譯、鏈接和運行的過程。

請注意,雖然這里只介紹了最基本的編譯和運行過程,但實際的軟體開發中可能還需要考慮很多其他因素,比如編譯器選項、多文件編譯、庫的使用、錯誤處理和調試等。

㈢ 在c語言中按什麼鍵編譯源程序

在 C 語言中,通常使用集成開發環境(IDE)來編寫、編輯和編譯源代碼。在 IDE 中,通常提供了一個「編譯」或「構建」按鈕或菜單項,您可以點擊它來對當前打開的源代碼進行編譯操作,生成可執行程序或庫文件。具體的快捷鍵可能因不同的 IDE 而異,建議查看相應 IDE 的文檔或快捷鍵設置。

㈣ linux 怎麼編譯c的源程序的gcc,編譯命令是什麼

在Linux下面,如果要編譯一個C語言源程序,我們要使用gcc編譯器。

先將源文件編譯成目標文件:gcc - c hello.c

生成hello.o文件,再將目標文件編譯成可執行文件:gcc -o hello hello.o

如:

int main(int argc,char **argv)

{

printf("Hello Linux ");

}

(4)如何編譯運行c語言源程序擴展閱讀:

在使用GCC編譯器的時候,我們必須給出一系列必要的調用參數和文件名稱。GCC編譯器的調用參數大約有100多個,這里只介紹其中最基本、最常用的參數。具體可參考GCC Manual。

GCC最基本的用法是∶gcc [options] [filenames]

其中options就是編譯器所需要的參數,filenames給出相關的文件名稱。

網路_gcc

㈤ c語言運行程序的步驟是怎樣的

運行C語言程序的步驟如下:
1. 編輯源代碼:首先,你需要使用文本編輯器(如Notepad++、Sublime Text或Vim等)編寫C語言源代碼,並將編寫好的代碼保存為具有.c擴展名的文件。
2. 編譯源代碼:接下來,使用C語言編譯器(如GCC或Clang)對.c文件進行編譯。編譯過程會將源代碼轉換成機器語言,生成一個名為.obj的目標文件。
3. 鏈接目標文件:編譯後生成的.obj文件還不能直接運行,需要通過鏈接器(如GCC的ld程序)將其與C語言標准庫等其他必要的對象文件鏈接,生成一個可執行的.exe文件。
4. 運行可執行文件:最後,雙擊生成的.exe文件,操作系統會載入並執行這個程序,你就可以看到程序的運行結果了。
C語言的一些特有特點包括:
- 結構化編程:C語言支持結構化編程,允許使用函數、數組和結構體等結構來組織代碼。
- 變數作用域:C語言中的變數可以有全局作用域或局部作用域,這有助於提高代碼的可維護性。
- 遞歸功能:C語言允許函數遞歸調用自身,這使得某些演算法可以更簡潔地實現。
- 值傳遞和指針:C語言中的參數傳遞主要是通過值傳遞的方式進行的,同時也支持通過指針傳遞,這為內存操作提供了便利。
- 結構體:C語言中的結構體允許將不同類型的變數組合在一起,形成復雜的數據結構。
- 類型轉換:C語言中整型和字元型等基本數據類型可以進行轉換,增加了編程的靈活性。
- 指針:C語言通過指針可以實現對內存的直接操作,這對於系統編程等場合非常重要。
- 預編譯處理:C語言的預編譯器(如#include、#define等預處理指令)可以在編譯前對源代碼進行處理,提高了編譯的效率和靈活性。

㈥ Visual Studio 2019怎麼編譯C語言源程序

1、首先,打開C語言編輯器工具,然後在該工具中編寫程序的源代碼,如下圖所示,然後進入下一步。

閱讀全文

與如何編譯運行c語言源程序相關的資料

熱點內容
虛假的程序員有哪些 瀏覽:858
如何用python連wifi源碼 瀏覽:965
並行系統協同演算法 瀏覽:177
arp命令的使用 瀏覽:102
程序員文史綜合題目 瀏覽:314
aixdd命令 瀏覽:748
dos卸載命令 瀏覽:719
王的命令第二季 瀏覽:625
六開獎攪珠直播源碼 瀏覽:396
四川免費伺服器雲主機 瀏覽:619
snmp協議java編程 瀏覽:454
停止解壓百度網盤 瀏覽:10
什麼是xml編程 瀏覽:444
比鄰pdf 瀏覽:555
雲主機是個人伺服器嗎 瀏覽:282
一般監控用什麼app 瀏覽:715
柴油機壓縮力不足怎麼辦 瀏覽:93
死亡通知app怎麼下載 瀏覽:359
女生做程序員有多累 瀏覽:155
word轉換pdf文件 瀏覽:275