當前位置:首頁 » 編程語言 » c語言源程序怎麼連接
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言源程序怎麼連接

發布時間: 2022-12-16 07:08:12

A. 在計算機上運行一個c語言編寫的程序,要經過怎樣的處理過程

開發一個C語言程序需要經過的四個步驟:編輯、編譯、連接、運行。

C語言程序可以使用在任意架構的處理器上,只要那種架構的處理器具有對應的C語言編譯器和庫,然後將C源代碼編譯、連接成目標二進制文件之後即可運行。

1、編輯:輸入源程序並保存(。C文件)。

2、編譯:將源程序翻譯成目標文件(。OBJ文件)。

3、連接:將目標文件轉換成可執行文件。EXE文件)。

4、運行:執行。EXE文件,得到運行結果。

(1)c語言源程序怎麼連接擴展閱讀:

C代碼變成程序的階段:

1、首先,源代碼文件test。c和相關的頭文件,如stdio。h,由預處理程序CPP預處理為一個。我的文件。這是預編譯。I文件不包含任何宏定義,因為所有宏都已展開,所包含的文件都已插入其中。我的文件。

2、編譯過程就是對預處理後的文件進行一系列的詞法分析、語法分析、語義分析和優化,從而產生相應的匯編代碼文件。這個過程通常是整個程序構造的核心部分,也是最復雜的部分之一。

3、匯編程序不直接輸出可執行文件,而是輸出目標文件。匯編程序可以調用LD來生成一個可以運行的可執行程序。為了得到最終的可執行文件「A.out」,需要將一大堆文件鏈接在一起。

4、在鏈接過程中,調用其他目標文件中定義的函數的指令需要重新校準,使用其他目標文件中定義的變數的指令也需要重新校準。

B. 如何將C語言編輯的源程序置入單片機

你如果有
編譯器
的話,例如:keil。把你的
C程序
有它打開後,編譯,編譯後會產生
hex文件
,然後在用
下載軟體
,例如:
志峰
軟體。不過你還得有單片機的
下載器
,用它連接單片機和電腦。這樣就可以把你的
C文件
你的
程序下載
到單片機里,讓它執行相應的動作啦。

C. 怎麼連接兩個C程序的源文件啊

c和c++的多文件編程規則是有差別的。下面只描述c的(主要是語法要求不太一樣,體現在編譯層面)。
簡單來說,有兩個層面的問題:
1
編譯問題
2
鏈接問題
1
編譯問題:
就是你的代碼要能夠編譯通過,編譯主要是對語法的檢查。例如:
1
a文件用b文件里的函數問題:在c語言中,a文件用b文件的函數,預設不用做任何說明(預設就是全局函數,注意不能是static函數,當然建議寫上extern的引用說明)。
2
但是如果a文件要用b文件的結構體。那麼必須把結構體放到頭文件里,兩個源文件都去include。
不羅列了,簡單來說,代碼要復合c的語法要求。
2
鏈接問題:
多個源文件可以編譯成編譯單元(編譯做得事),並且把這些編譯單元鏈接到一起形成最終的可執行文件或動態/靜態庫。
註:編譯單元,.o文件。
舉例:有a.c和b.c
以gcc編譯來說:(不考慮其他編譯和鏈接情況)
gcc
-c
a.c
//生成a.o
gcc
-c
b.c
//生成b.o
gcc
-o
hello
a.o
b.o
//
a.c和b.c裡面一個必須有main函數。輸出hello可執行程序。
如果是在集成開發環境,例如vc、devc++、codebloker等。就在軟體相關工程屬性里勾選上或增加源文件就行。(工具屏蔽了編譯鏈接技術細節)

D. 在C語言中編寫程序如何將兩個文件連接起來

使用vc的話,同時打開兩個文件,然後在編譯那個菜單中選擇「組建」就可以了。要保證兩個文件實在同一個工程裡面。

E. C語言中.cpp與.h是如何連接的

.h 和 .cpp 不是 連接/鏈接 關系,而是包含關系。
也就是說,在預編譯期間,編譯器把 .h 的文字內容,原原本本 插入.cpp 文件中,插入位置就在 #include 這句 宏命令處。文字內容 插入完畢,再編譯 .cpp

系統的 .h 放在 系統文件夾們 里。系統文件夾路徑 定義在環境變數 INCLUDE 里。
自定義 .h 可以放在當前文件夾,也可別的文件夾。若在別的文件夾,寫 #include 時可以把路徑加在.h 文件名前。

F. C語言如何將兩個源程序文件連接在一起編譯

你建個項目(project),把兩個文件放在一起就行了。

G. [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)的,把程序的編輯、編譯、連接和運行等操作全部集中在一個界面上進行,功能豐富,使用方便,直觀易用。

H. C語言編譯好後怎麼鏈接

在絕大多數C/C++的集成開發環境(如VC6、VS、TC、QT)中,編譯和鏈接都可以通過一個按鍵解決。以VC6為例,你可以通過build按鈕(快捷鍵F7)一步完成編譯和鏈接,當然你也可以先編譯(compile 快捷鍵Ctrl+F7),後點擊build按鈕,效果是一樣的。

編譯和鏈接,其實就是編譯型編程語言(解釋性編程沒有這個步驟)的生成可執行文件的兩個步驟。
編譯,是為了將源代碼生成目標文件(也叫中間文件);鏈接,是將目標文件生成最終的可執行文件。
通常,在命令行編譯模式下,你都需要執行兩個命令來分別完成編譯和鏈接,但在集成開發環境中,這不是必要的,完全可以一鍵完成。
之所以分兩步,主要的設計目的,就是用不同的連接器可以生成在不同平台和不同環境下使用的可執行文件。但這個在同一個圖形化的IDE界面中並沒有什麼意義。

I. c語言怎樣連接資料庫

1、配置ODBC數據源。
2、使用sql函數進行連接。
對於1、配置數據源,配置完以後就可以編程操作資料庫了。
對於2、使用SQL函數進行連接,參考代碼如下:
#include<windows.h>
#include<sql.h>
#include<sqlext.h>
void main()
{
HENV henv; //環境句柄
HDBC hdbc; //數據源句柄
HSTMT hstmt; //執行語句句柄
unsigned char datasource[]="數據源名稱"; //即源中設置的源名稱
unsigned char user[]= "用戶名"; //資料庫的帳戶名
unsigned char pwd[]= "密碼"; //資料庫的密碼
unsigned char search[]="select xm from stu where xh=0";
SQLRETURN retcode; //記錄各SQL函數的返回情況
// 分配環境句柄
retcode= SQLAllocEnv(&henv); // 等介於 SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL
, &henv);
// 設置ODBC環境版本號為3.0
retcode= SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
// 分配連接句柄
retcode= SQLAllocConnect(henv,&hdbc); // 等介於 SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
//設置連接屬性,登錄超時為*rgbValue秒(可以沒有)
// SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (SQLPOINTER)(rgbValue), 0);
//直接連接數據源
// 如果是windows身份驗證,第二、三參數可以是
,也可以是任何字串
//SQL_NTS 即 "
retcode= SQLConnect(hdbc,datasource, SQL_NTS, user, SQL_NTS , pwd, SQL_NTS );
//分配語句句柄
retcode= SQLAllocStmt(hdbc,&hstmt); // 等介於 SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
//直接執行查詢語句
retcode=SQLExecDirect(hstmt,search,SQL_NTS);
//將數據緩沖區綁定資料庫中的相應欄位(i是查詢結果集列號,queryData是綁定緩沖區,BUFF_LENGTH是緩沖區長度)
SQLBindCol(hstmt, i, SQL_C_CHAR, queryData[i-1], BUFF_LENGTH, 0);
//遍歷結果集到相應緩沖區 queryData
SQLFetch(hstmt);
/*
*對遍歷結果的相關操作,如顯示等
*/
//注意釋放順序,否則會造成未知錯誤!
SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
SQLFreeHandle(SQL_HANDLE_ENV, henv);
}

J. C語言源程序文件經過編譯連接之後生成一個後綴為_____的文件。

如果只生成一個文件,那麼這個題目答案是B。編譯(compile)後生成目標文件,後綴:.obj。也就是機器碼。

然後鏈接器(Linker) 連接生成可執行文件,後綴:.exe。最後運行命令(go),直接運行.exe文件。

(10)c語言源程序怎麼連接擴展閱讀:

簡單講,編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。

一個現代編譯器的主要工作流程:源代碼(source code) →預處理器(preprocessor) →編譯器(compiler) →目標代碼(object code) →鏈接器(Linker) → 可執行程序(executables)

高級計算機語言便於人編寫,閱讀交流,維護。機器語言是計算機能直接解讀、運行的。

編譯器將匯編或高級計算機語言源程序(Source program)作為輸入,翻譯成目標語言(Target language)機器代碼的等價程序。

源代碼一般為高級語言 (High-level language), 如Pascal、C、C++、Java、漢語編程等或匯編語言。

而目標則是機器語言的目標代碼(Object code),有時也稱作機器代碼(Machine code)。

對於C#、VB等高級語言而言,此時編譯器完成的功能是把源碼(SourceCode)編譯成通用中間語言(MSIL/CIL)的位元組碼(ByteCode)。

最後運行的時候通過通用語言運行庫的轉換,編程最終可以被CPU直接計算的機器碼(NativeCode)。