當前位置:首頁 » 編程軟體 » c語言多文件程序編譯連接運行

c語言多文件程序編譯連接運行

發布時間: 2022-04-17 14:43:45

『壹』 [c語言] 運行C程序的步驟

(1)上機輸入和編輯源程序。通過鍵盤向計算機輸入程序,如發現有錯誤,要及時改正。最後將此源程序以文件形式存放在自己指定的文件夾內(如果不特別指定,一般存放在用戶當前目錄下),文件用.c作為後綴,生成源程序文件,如f.c。

(2)對源程序進行編譯,先用C編譯系統提供的「預處理器」(又稱「預處理程序」或「預編譯器」)對程序中的預處理指令進行編譯預處理。例如,對於#include<stdio.h>指令來說,就是將stdio.h頭文件的內容讀進來,取代#include<stdio.h>行。由預處理得到的信息與程序其他部分一起組成一個完整的、可以用來進行正式編譯的源程序,然後由編譯系統對該源程序進行編譯。
編譯的作用首先是對源程序進行檢查,判定它有無語法方面的錯誤,如有,則發出「出錯信息」,告訴編程人員認真檢查改正。修改程序後重新進行編譯,如果還有錯,再發出「出錯信息」。如此反復進行,直到沒有語法錯誤為止。這時,編譯程序自動把源程序轉換為二進制形式的目標程序(在Visual C++中後綴為.obj,如f.obj)。如果不特別指定,此目標程序一般也存放在用戶當前目錄下,此時源文件沒有消失。
在用編譯系統對源程序進行編譯時,自動包括了預編譯和正式編譯兩個階段,一氣呵成。用戶不必分別發出二次指令。
(3)進行連接處理。經過編譯所得到的二進制目標文件(後綴為.obj)還不能供計算機直接執行。前面已說明:一個程序可能包含若干個源程序文件,而編譯是以源程序文件為對象的,一次編譯只能得到與一個源程序文件相對應的目標文件(也稱目標模塊),它只是整個程序的一部分。必須把所有的編譯後得到的目標模塊連接裝配起來,再與函數庫相連接成一個整體,生成一個可供計算機執行的目標程序,稱為可執行程序(executive program),在Visual C++中其後綴為.exe,如f.exe。
即使一個程序只包含一個源程序文件,編譯後得到的目標程序也不能直接運行,也要經過連接階段,因為要與函數庫進行連接,才能生成可執行程序。
以上連接的工作是由一個稱為「連接編輯程序」(linkage editor)的軟體來實現的。
(4)運行可執行程序,得到運行結果。
以上過程如圖1.2所示。其中實線表示操作流程,虛線表示文件的輸入輸出。例如,編輯後得到一個源程序文件f.c,然後在進行編譯時再將源程序文件f.c輸入,經過編譯源程序,找出問題,修改源程序,並重新編譯,直到無錯為止。有時編譯過程未發現錯誤,能生成可執行程序,但是運行的結果不正確。一般情況下,這不是語法方面的錯誤,而可能是程序邏輯方面的錯誤,例如計算公式不正確、賦值不正確等,應當返回檢查源程序,並改正錯誤。
為了編譯、連接和運行C程序,必須要有相應的編譯系統。目前使用的很多C編譯系統都是集成開發環境(IDE)的,把程序的編輯、編譯、連接和運行等操作全部集中在一個界面上進行,功能豐富,使用方便,直觀易用。

『貳』 c語言中如何同時運行多個源文件

第一步:

將源文件1(1.c)修改為如下形式:

#include "print.h"
#include "2.c"
int main(void)
{
printHello();
return 0;
}

其中的2.c就是源文件2的文件名

第二步,將三個文件保存到同一目錄中

第三步,打開TC2,執行FILE-CHANGE DIR,將工作目錄換到三個文件所在的目錄。

第四步,在TC2中打開1.c文件,編譯運行。

建議不要再使用TC2這個相對原始的IDE了,上面介紹的這個方法也並不是標准方法,建議使用TC2006/VC/BCB等現代的IDE環境,如果實在是舍棄不下DOS字元界面,那就試試GCC吧!

『叄』 Notepad++ 如何編譯並運行C語言多文件

1:安裝MinGW及GCC編譯器
2:配置環境變數(註:可能需要重啟後生效)
計算機-->屬性-->高級系統設置-->環境變數-->系統:path 中添加C:\MinGW\bin;
當然MinGW是安在C盤下,按不同路徑修改
3:打開Notepad++,編寫一段C++代碼並保存
例如:
#include <iostream>
using namespace std;
int main(){
int a, b;
cout<<"Input:"<<endl;
while(cin>>a>>b){
cout<<a+b<<endl;
}
return 0;
}
4:菜單欄--》運行--》運行,彈出框中輸入:
cmd /k g++ -o $(NAME_PART).exe "$(FULL_CURRENT_PATH)" & PAUSE & EXIT
選擇快捷鍵後保存為: G++編譯,注意快捷鍵不要有重復,在點擊彈出框的運行,Ok,關閉Notepad,再打開Notepad++;
5:菜單欄--》運行--》運行,彈出框中輸入:
cmd /k "$(NAME_PART)" & PAUSE & EXIT
同理保存名稱換為為: G++運行,再點運行程序就會執行了

『肆』 C語言怎麼進行多文件編譯,VC++6.0,要求詳細步驟

程序1 存入 a1.c
程序2 存入 a2.c
刪去 程序2 里 多寫 的 一行 void accumulate(int k)
========
MS VC++ 6.0 編譯命令:
CL a1.c a2.c
得到 a1.exe
運行 a1.exe 便可。
(其它編譯器, 請照貓畫虎。)

『伍』 C語言怎樣把兩個文件連接起來成為一個文件來編譯執行

這個很簡單啊。其實C文件中的函數隱含就是EXTERN的,可以被其他函數調用。
你可以為你的file2.c見一個頭文件為file2.h,內容如下
--------------------------------
/*file2.h*/
#ifndef FILE2_H_
#define FILE2_H_

int max(int a ,in b);

#endif
--------------------------
然後在file1.c
中添加#includes"file2.h"
--------------------------
#include"file2.h"
main()
{int m,a,b;
int max(int a,int b);
a=10;
b=20;
m=max(a,b);
printf("%d",m);
}
---------------------
file1.c內容不變.
添加file1.c 和file2.c一起到工程,編譯,運行,OK

『陸』 在c語言中,把兩個函數放在兩個程序文件中,怎樣作為兩個文件進行編譯,連接和運行

不知道你用的是什麼編譯器,如果用的是VC的話,可以嘗試下我的做法:
創建兩個源代碼文件:1.cpp和2.cpp
1.cpp中內容:
#include<stdio.h>
#include"2.cpp"/*採用包含命令調用2.cpp中的函數*/
int max(int x,int y)
{
return x>y?x:y;
}
int main()
{
int a,b,m,n;
a=10;
b=30;
m=max(a,b);
n=min(a,b);
printf("%3d%3d\n",m,n);
return 0;
}
2.cpp中內容:
int min(int x,int y)
{
return x<y?x:y;
}
把這兩個源代碼放到一個文件夾下,編譯並運行1.cpp即可。注意,2.cpp中沒有main函數,所以不能直接編譯2.cpp。其實由於最終1.cpp和2.cpp要連接到一起形成一個可執行文件1.exe,所以2.cpp中也不能有main函數。

『柒』 多文件C程序怎麼編譯連接及運行

關於 C 語言源程序的多模塊編譯、連接,這個必須要靠編寫 makefile 文件才行。
而且還必須依照編寫 makefile 的規則編寫,才能夠正確編譯、連接各個 C 語言
源程序,最終執行 make makefile 指令,生成一個可執行程序。
makefile 文件是一個文本文件,其大致內容如下:
myfile1.o: myfile1.c
gcc -c myfile1.c
myfile2.o: myfile2.c
gcc -c myfile2.c
myrunfile: myfile1.o myfile2.o
gcc -o myrunfile myfile1.o myfile2.o

『捌』 c語言為何需要編譯和連接才能運行

的文件(也稱為源代碼)而已,需要經過1定的處理才能轉換成機器上可運行的可履行文件。
我們將對C語言的這類處理進程稱為編譯與鏈接。

『玖』 C語言文件的編譯與執行的四個階段並分別描述

開發C程序有四個步驟:編輯、編譯、連接和運行。

任何一個體系結構處理器上都可以使用C語言程序,只要該體系結構處理器有相應的C語言編譯器和庫,那麼C源代碼就可以編譯並連接到目標二進制文件上運行。

1、預處理:導入源程序並保存(C文件)。

2、編譯:將源程序轉換為目標文件(Obj文件)。

3、鏈接:將目標文件生成為可執行文件(EXE文件)。

4、運行:執行,獲取運行結果的EXE文件。

(9)c語言多文件程序編譯連接運行擴展閱讀:

將C語言代碼分為程序的幾個階段:

1、首先,源代碼文件測試。以及相關的頭文件,比如stdio。H、由預處理器CPP預處理為.I文件。預編譯的。文件不包含任何宏定義,因為所有宏都已展開,並且包含的文件已插入。我歸檔。

2、編譯過程是對預處理文件進行詞法分析、語法分析、語義分析和優化,生成相應的匯編代碼文件。這個過程往往是整個程序的核心部分,也是最復雜的部分之一。

3、匯編程序不直接輸出可執行文件,而是輸出目標文件。匯編程序可以調用LD來生成可以運行的可執行程序。也就是說,您需要鏈接大量的文件才能獲得「a.out」,即最終的可執行文件。

4、在鏈接過程中,需要重新調整其他目標文件中定義的函數調用指令,而其他目標文件中定義的變數也存在同樣的問題。

熱點內容
c語言干什麼 發布:2024-03-29 00:05:35 瀏覽:313
香港中轉伺服器搭建 發布:2024-03-29 00:05:16 瀏覽:672
安卓手機怎麼在桌面上顯示鍾表 發布:2024-03-28 23:48:22 瀏覽:4
分析代碼能編譯嗎 發布:2024-03-28 23:48:16 瀏覽:766
c語言與易語言 發布:2024-03-28 23:46:25 瀏覽:587
ai壓縮腳本 發布:2024-03-28 23:41:10 瀏覽:987
危化品的存儲 發布:2024-03-28 23:02:09 瀏覽:608
qq重新設密碼怎麼設置 發布:2024-03-28 22:49:05 瀏覽:89
深圳航天信息稅盤伺服器地址 發布:2024-03-28 22:47:51 瀏覽:204
玩csol伺服器連接中斷怎麼辦 發布:2024-03-28 22:46:19 瀏覽:906