導航:首頁 > 源碼編譯 > 怎麼編譯和鏈接兩個文件

怎麼編譯和鏈接兩個文件

發布時間:2022-09-26 15:34:36

❶ 在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語言中編寫程序如何將兩個文件連接起來

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

❸ borland c3.1(集成開發環境下)怎麼編譯和連接多個文件

起點-SDK和IDE的選擇
本文主要為學習Symbian開發的初學者講授如何准備開發環境。對Symbian開發有興趣、具備一定軟體設計基礎的朋友都可以來一起研究。需要說明的是,對於學習Symbian開發,需要有較為牢固的編程經驗(這里我們暫時要求具有較好的C++程序語言設計能力),需要較好的英語基礎,需要堅持不懈的精神;另外,如果你重來沒有接觸過VS2003,不懂DOS命令、不懂如何設置環境變數,請先學習相關知識。另外,本文的作用僅僅是總結和引導,強烈建議初學者結合本文和SDK文檔動手實踐
本文主要針對S60的開發環境的建立,因此首先為大家列出S60系統的各種版本。因為開發者應該根據需要,選擇自己適合的SDK版本。
1、Series60 第一版 - Symbian OS 6.1
2、Series60 第二版 - Symbian OS 7.0s
3、Series60 第二版 Pack 1 - Symbian OS 7.0s
4、Series60 第二版 Pack 2 - Symbian OS 8.0a
5、Series60 第二版 Pack 3 - Symbian OS 8.1a
6、Series60 第三版 - Symbian OS 9.0
需要要說明的是,Nokia的Symbian/Series60開發包支持的集成開發環境[IDE]工具有很多種,下面列出主要使用的一些IDE:
1、Microsoft Visual Studio 6 / Visaul C++ 6
2、Microsoft Visual Studio .NET [2003] / Visaul C++ 7
3、Borland C++ Builder 6
4、Borland C++ Builder X 1.0
5、Metrowerks CodeWarrior Studio for Symbian Personal/Professional 2.0/2.5
選擇哪種開發工具依據是你個人的習慣和喜好,需要注意的是,對於不同的開發環境,我們需要選擇不同SDK。本文所使用的SDK支持Series60 第二版 Pack 2 - Symbian OS 8.0a,IDE為VS2003:
=============================================
SDK:SERIES 60 2ND EDITION SDK FOR SYMBIAN OS SUPPORTING FEATURE PACK 2
SUPPORTING MICROSOFT VISUAL C++ CHINESE SIMPLIFIED EDITION
IDE:Microsoft Visual Studio .NET 2003
=============================================

若你使用的IDE是VC6,那麼步驟與本文將有所不同,你可以參考網上其他教程,網上講授Symbian環境設置的90%以上的文章都是基於VC6的。若你使用VS2003,但是所使用的SDK與本文使用的有所出入,那麼本文仍然適用,不過個別地方也許會有改動。有什麼問題可以提出來,大家一起討論。
本文並未講述安裝Nokia Developer Suite - Carbide.vs 來配合VS2003導入、建立S60工程。這部分內容將在下一篇文章講解如何建立、導入工程的時候詳細講解。因此你可以暫時不安裝該軟體。等你按照下面的說明將環境設置好以後,再安裝此軟體做更深一步研究。涉及此項內容的細節,請參閱:Symbian OS開發入門(二) :VS2003環境下Symbian工程的導入與建立。
我個人原來是使用VC6作為IDE,對VS2003下的開發也不是特別熟悉,我是一個Symbian開發的初學者,這里寫的東西是大多數基於SDK的開發文檔,結合自己測試的時候的一些經驗教訓。寫出來,一方面象引導象我一樣的初學者盡快入門,另外一方面大家也可以在此基礎上討論,解決一些經驗錯誤。幫助後來者少走彎路。
【開發環境建立詳細步驟】
一、系統要求
文檔中寫了一些對你PC的要求,反正就是保證你的電腦能運行VS2003和SDK。一般沒有什麼問題。系統要求Win2000 SP3以上, WinXP SP1以上,Win2003中任意一種。
二、軟體安裝
說明:在安裝SDK以前保證下列1-3項先被正確安裝。安裝軟體的時候必須保證你所使用的帳號是你PC的管理員帳號,否則可能導致某些環境變數不能被正確設置。SDK和IDE要安裝在電腦上的同一個分區。SDK的安裝路徑不能含有空格。下面詳細說明需要安裝的軟體及其步驟:
1、在安裝SDk之前必須安裝ActivePerl(官方文檔要求安裝Perl 5.6.1 build 531,並說明安裝其他版本可能會有問題,我自己測試使用ActivePerl-5.6.1.638-MSWin32-x86,運行情況良好)。該軟體可以到官方網站下載:
2、安裝java Run-Time1.4.1_02 或者新版本,下載地址java.sun.com/downloads/index.html"
說明:在使用命令行編譯程序的時候事實上是不需要用到JAVA Run-Time1的。但是以後我會提到,若要使用SDK的一個強大的工具ApplicationWizard,就必須安裝該組件,同時若要使用Sisar等工具的話,JRE也必不可少。這里請你就先安裝吧。
3、安裝IDE,如前所述,安裝Microsoft Visual Studio .NET 2003
4、安裝SDK,注意前面所說的SDK的安裝路徑不能含有空格。並且要和IDE裝在同一個分區,這樣可以避免一些麻煩。下載地址:,6566,034-4,00.html
5、安裝Nokia Developer Suite - Carbide.vs 。這相當於VS2003的一個插件,用於幫助你導入或者建立S60工程,從而似的你可以在VS2003中編寫代碼。(本文暫時不講解怎麼使用,你可以先安裝,也可以以後用的時候再安裝)
下載地址:,,034-902,00.html
三、環境變數檢查
在2.0版本的SDK之前[不包括1.2For CW],你需要在系統變環境量中設置一個名為EPOCROOT的環境變數,(什麼是環境變數,如何設置,這個去自學),他要指向你的SDK包含有epoc32的路徑,前面沒有盤符,後面要加一個"\",這個一般在你安裝了SDK之後系統會自動替你加好。不過2.0之後的[包括1.2 For CW]就不必設置了,有一個名為devices的SDK管理工具會為一些需要使用這個變數的工具提供類似模擬EPOCROOT環境變數的功能。可以把devices看作是多個Symbian SDK,不限於S60,得切換工具,他的使用方法可以在你安裝了2.0SDK之後,在命令行模式下輸入 devices -help 來獲得幫助。
我們使用的這個版本的SDK不需要設置太多環境變數,這里只需要自己加入修改一下環境變數,在系統環境變數path中加入:
{VS2003的安裝路徑}\Microsoft Visual Studio .NET 2003\Vc7\bin;這樣才能保證後面用到的LINK.EXE被正確設置。
四、編譯運行「Helloworld」 - 檢查開發環境是否被正確設置
上面的安裝步驟完成以後,還沒有大功告成,這時你需要做的是檢查你的環境是否被正確設置。怎樣來確認開發環境已經正確建立了呢?最好的方式就是通過編譯、運行一個例子來檢驗。需要指出的一點是,下面的步驟可以在可以在Windows的命令行工具中操作,也可以在VS 2003自帶的工具「Visual Studio .NET 2003 命令提示」中操作。在VS 2003的命令行工具中操作,其優點是可以避免某些環境變數設置有誤而導致的錯誤,因為它不但包含系統環境下PATH變數的內容,同時也包含安裝VC++.NET過程中,添加的一些路徑,包括主要的編譯鏈接等工具。而缺點就是:若你僅僅在這里通過驗證,而在WINDOWS自帶的命令行界面沒有通過的話,那麼後期會遇到一些麻煩(例如使用ApplicationWizard建立工程)。所以,如果不使用VC++.NET帶的「命令提示」工具,您也許就會因為找不到相應編譯工具,而無法繼續下去。如果自己勤快一些,可以手動把環境變數加到系統PATH中去,這樣就可以用Windows「附件」菜單中的那個「命令提示」工具了,後面也許會順利一點。
1、打開Windows的命令行界面(或者VC++.NET自帶的命令行工具)
2、將剛剛安裝的SDK設置為默認的devices.這個可以通過下面的命令設置:
devices -setdefault @S60_2nd_FP2_SC:com.nokia.Series60
事實上SDK的安裝過程中就會提示你設置默認的devices。做這個工作的原因是你的系統中很可能安裝了多個SDK,那麼使用哪個SDK作為當前的開發工具,就需要正確設置。你可以使用命令行devices -default來查看當前的默認SDK是什麼。
3、找到Symbian工程文件所在的目錄
現在我們就通過SDK中自帶的例子來驗證你的環境是不是被正確設置。注意安裝了SDK以後,在其安裝目錄中的Series60Ex文件夾中有很多例子,我們使用helloworldbasic來驗證。在命令行界面中用cd命令進入helloworldbasic的group目錄:
cd sdk_installation _directory\Series60Ex\helloworldbasic\group
在group目錄下應該包含bld.inf和helloworldbasic.mmp這兩個文件。這兩個文件的簡要描述如下:
HelloWorld.mmp:項目定義文件,描述了將要構建的項目信息,還定義了一些資源文件和應用程序信息文件。它是一個環境中立的文件,可以使用各種工具來處理並生成各種目標環境的make文件。您可以使用文本編輯器查看該文件。裡面的信息還是很簡明的,包括構建目標,構建類型,源路徑,庫文件,頭文件等等信息。
Bld.inf:組件描述文件,它列出了一個組件當中包括的所有項目,還包括一些額外的構建指令。您也可以使用文本編輯器查看該文件。對於本實例來說,僅包括一個項目HelloWorld.mmp。
4、在命令行中輸入bldmake bldfiles
這個命令會處理當前目錄下的bld.inf文件,具體來說會執行以下處理過程
(1)、生成目錄C:\Symbian\8.0a\S60_2nd_FP2_SC\epoc32\BUILD\SYMBIAN\8.0A\S60_2ND_FP2_SC\SERIES60EX\HELLOWORLDBASIC
(2)、在這個目錄下,生成一系列的Make文件,針對各種目標環境。比如VC7.MAKE,CW_IDE.MAKE等等。
(3)、在當前目錄下生成abld.bat文件,這個文件會在隨後用到。您可以查看該文件的內容。但是建議不要手工的更改它的內容。
Bldmake命令也支持其他的命令行選項,您可以直接輸入bldmake來查看簡要的介紹,還可以查看SDK文檔了解詳細信息。
5、在命令行中輸入abld build wins
由bldmake處理bld.inf文件得到的abld.bat文件,使得abld命令可用。Abld.bat控制著構建一個項目的方方面面。Abld命令的語法非常地靈活,它擁有許多命令行選項,它們的組合涵蓋了各種構建需求。
注意:這里如果你被提示缺少了一個文件mspdb71.dll,那麼可以通過如下方法解決:在Microsoft Visual Studio .NET 2003的安裝目錄下。你可以在\Common7\IDE這個目錄下找到這個文件。把他拷貝到\Vc7\bin下就可以了。再次提醒前面的環境變數要設置好,否則這里你還會因為缺少link.exe而中止運行。
6、在命令行中輸入:epoc
這時模擬器就會出現。如果你的環境都設置正確的話,那麼模擬器中就會有你剛剛編譯的helloworld,它在模擬器上的名字是「HW」
五、檢查SDK和IDE是否兼容工作
1、重復上面的1-4
2、在命令行中輸入:makmake helloworldbasic vc7,這時會在group文件夾下生成一些文件,其中包含VS2003的工程文件HELLOWORLDBASIC.sln
3、打開VS2003,選擇「打開解決方案(Open Solution)」,打開HELLOWORLDBASIC.sln,然後進行編譯、運行,就會得到第四部分第6步中的效果。(運行的時候可能需要選擇程序epoc.exe)

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

  1. 請使用預編譯指令 #include。

  2. #include放在代碼文件頭,用於告訴編譯器,文件中包含的頭文件,屬於預處理文件的一部分 。
    語法為:
    #include <iostream.h> (這句是程序編譯時搜索系統目錄文件)
    #include 「HName.h" (這句是程序編譯時搜索當前項目的文件)

❺ c語言怎麼在命令行里把兩個文件編譯和鏈接起來書上說是tcc 1.c 2.c但不行.

你要運用TCC命令的話需要計算機正確安裝了Tiny C Compiler。。。
linux下的gcc很相像~

❻ 怎麼連接兩個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等。就在軟體相關工程屬性里勾選上或增加源文件就行。(工具屏蔽了編譯鏈接技術細節)

❼ C語言編譯好後怎麼鏈接

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

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

❽ 如何使用.mak文件進行編譯和鏈接

C語言是一門計算機語言,有自己一定的語法。但是,C語言並不能直接被對象所理解,需要將C語言轉變成可執行代碼,即二進制代碼。在C語言轉變成二進制可執行代碼時,是以工程為單位的。而一個工程中往往會包含多個C文件。因此,需要將每個C文件都編譯成二進制代碼。此時,每個C文件所對應的二進制代碼是獨立的。由於工程是一個系統,所以需要將所有的C文件二進制代碼鏈接到一起,形成一個工程的可執行文件。
綜上,編譯和鏈接就是指的將C文件轉變成二進制代碼,並將各個獨立的C文件二進制代碼鏈接到一起,形成一個可執行文件的過程。

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

1、請使用預編譯指令 #include。
2、#include放在代碼文件頭,用於告訴編譯器,文件中包含的頭文件,屬於預處理文件的一部分 。 語法為:
#include <iostream.h> (這句是程序編譯時搜索系統目錄文件)
#include 「HName.h" (這句是程序編譯時搜索當前項目的文件)

❿ 多個源文件的編譯和鏈接

這個問題我也曾經遇到過,後來過了好久才弄懂。這個一般是把程序分在.h文件和.c文件,在.h文件中給出函數聲明定義基本的數據結構,在.c文件中實現相應的.h文件中的函數。然後要使用相應的介面或函數就包含.h文件,就是#include 相應的.h 文件。在編譯生成的時候編譯器會根據項目的makefile 來編譯生成。如果想比較清楚的了解,可以看看linux 下的make工具和makefile ,make 就是根據makefile 來編譯生成項目。vc++6.0底層的過程也類似,但是被界面屏蔽了。

閱讀全文

與怎麼編譯和鏈接兩個文件相關的資料

熱點內容
程序員用得到數字區嗎 瀏覽:170
python求商 瀏覽:473
ipad能用c語言編譯器嗎 瀏覽:557
軟泥解壓球最新版 瀏覽:994
4萬程序員辭職創業 瀏覽:755
thinkingphp 瀏覽:593
安卓相冊移動文件夾 瀏覽:2
耳朵清潔解壓聲控99的人都睡得著 瀏覽:201
叉車出租網站源碼 瀏覽:870
共享單車的app是什麼 瀏覽:404
不帶gui的伺服器什麼意思 瀏覽:369
金剛經及PDF 瀏覽:98
php中冒號 瀏覽:354
php5432 瀏覽:348
命令在哪使用 瀏覽:168
php獲取網頁元素 瀏覽:704
為什麼需要硬體驅動編譯 瀏覽:881
pm編程怎樣看導柱孔對不對稱 瀏覽:134
農業大學選課找不到伺服器怎麼辦 瀏覽:645
路由配置網關命令 瀏覽:931