vc文件編譯順序
1. 我在考試 求助:vc++中如何建立、編譯和運行包含多個文件的程序,寫出步驟
兔子好,我是zkill^_^
*建立和運行包含多個文件的程序的方法*/
情形:一個程序包含多個源程序文件,則需要建立一個項目文件(project file),在這個項目文件中包含多個文件(源文件和頭文件)。項目文件是放在項目工作區中的,因此還要建立項目工作區。在編譯時,系統會分別對項目文件中的每個文件進行編譯,然後將所得到的目標文件連接成為一個整體,再與系統的有關資源連接,生成一個可執行文件,最後執行這個文件。
實際操作時有兩種方法:(1)由用戶建立項目工作區和項目文件;(2)用戶只建立項目文件而不建立項目工作區,由系統自動建立項目工作區。
1.由用戶建立項目工作區和項目文件
1.1將同一程序中的各個源程序文件,存放在指定目錄(最好是一個,好找)下:如將file1.c file2.c file3.c file4.c保存在D:\CC子目錄下。
1.2建立一個項目工作區。File|New|Workspaces : Workspace name -> ws1 Location -> D:\CC(或其他目錄)|OK
1.3建立項目文件。File|New|Project -> Win32 Console Application : Project name -> project1 Location: D:\CC\WS1\project1|OK(選中Add to current workspace) -> An empty project
1.4將源程序文件放到項目文件中。Project|Add To Project|Files -> Insert Files into Project : 選中File1.c File2.c File3.c File4.c -> OK
1.5編譯和連接項目文件: Build|Build project1.exe
1.6執行可執行文件: Build|Execute project1.exe ———————————————————OVER
參考下吧不一定對
2. VC6.0的編譯方向是從左到右嗎
難道int還變成了tni了機器就能識別這是關鍵字了嗎? 總體來說是從左邊到右邊,但是特殊的比如運算符『=』 ,,,,
3. 怎樣用vc編譯c語言文件,請詳細說明步驟
如果只是想簡單用VC編譯c語言文件,可以不用那麼復雜,你可以這樣做:
在你想保存的文件夾下,新建一個.txt的文本文件,名字就取你要新建立的c文件的名字,但是注意後綴名改為.c;
讓後右鍵(如果只裝了vc的話,也可以直接雙擊打開)選擇vc方式打開;
在打開的窗口中編寫你的代碼,寫完後保存,點擊!符號(也可以找菜單項中的build下的build all或execute都可以),進行編譯和鏈接,彈出對話框就選擇是,如果沒有錯誤就可以通過編譯,程序就直接運行
如果是按步驟來會稍微麻煩點,如下:
(1)打開vc環境
(2)選擇「File」—「New」
在彈出的對話框中選擇"projects"項,先建立工程文件:
i:對話框的左邊選擇Win32 console Application項
ii:在對話框的右邊可以選擇路徑Location和輸入工程名Project name,下邊的單選一般默認為Create new workspace即可(因為是新建)
iii:以上設置好後,單擊ok,下面的對話框按默認即可,點擊finish,然後在下一個對話框中點擊ok,工程建所在文件夾就建好了。此時如果按你剛才設定的路徑去查看,就可以找到建立的工程文件夾。
(3)建立文件
讓後同樣在「File」—「New」下,本次選擇Files項,在左邊選擇c++source file項,右邊file下可以輸入文件名,上邊的為指定該文件所在的工程,一般默認即可建立在你剛剛建立的工程文件中,下邊的Location為該源文件的路徑,都按要求填寫好後,點擊ok即可進行文件的代碼的編寫了
(4)代碼寫好後,如上一部分簡單操作時所說的進行編譯和鏈接,讓後運行就可以查看結果了。
至於工程是做什麼用的,就好比是一個「單位或者說工廠」一樣,而源文件好比是單位中的「車間」,這樣理解簡單點,具體的過程你按我所說的試試吧
附:如果你的英文好的話,很容易理解和看懂出現的各種提示的意思,如果你裝的是漢化版的vc,那就更好辦了,很容易就看懂的,試試看,祝你成功!
剛開始學習c語言,用的也是vc環境,更本不知道從哪裡進入,哪裡寫代碼,所以想了上面的簡單的辦法,後來看書就慢慢的會用了,相信你很快就會很熟練了,呵呵
4. 如果一個工程中有多個C++源文件,怎麼確定先編譯哪個源文件呢
授人以魚,不如授人以漁.建議樓主好好看看<<C++ primer>>這本書,目前有中文第四版,我非常喜歡它,我也是去年十月份開始學習C++的,看完它再看<<effective C++>>和<<more effective C++>> , 尤其是<<effective C++>>,簡直是C++的聖經,非看不可...最後到高級了.你還可以看看<<深入探索C++對象模型>>...我全看完了,感覺受益匪淺.
好了,下面開始解答問題:
解答問題之前,復習一下基本概念;
1:C++中的全局變數,在整個程序中只能定義一次,但可以聲明多次(不限次數); 在一個地方定義,,然後在其他地方使用時,要先聲明一下;
2:什麼叫變數定義? 比如 int i; 這就是定義;
而 extern int i; 則 只是聲明;
但如果寫作 extern int i = 0; 則這也是定義,不是聲明;(是不是有點繞??熟悉了就很簡單了)
所以,我覺得你的問題.實際上是源自你對C++語法中變數的定義和聲明這兩個概念的模糊;
你說你在a.cpp 中聲明 i, 而在b.cpp中必須用extern 聲明才可通過編譯,這是正常的..因為你的i是在a.cpp中定義的..
你說你在b.cpp中聲明i, a.cpp中是否使用extern都可以通過編譯,這個問題嘛.我估計你的代碼實際上仍然是在a.cpp中定義了i,而b.cpp中定義的i不是全局的.
至於你說如果有多個源文件.那麼編譯順序如何確定.這個問題很難回答你,恐怕不同的編譯器對此的處理都不大相同..我覺得你不應該考慮這個問題..實際上編譯器會把不同的源文件分別、單獨地編譯成獨立的模塊,最後再鏈接成一個可執行程序,因為它們都是獨立編譯的模塊,理論上說.編譯順序是不重要的.
我覺得倒是應該告訴你如何正確地管理和使用全局變數;
首先,建立一個 "global.h"(文件名隨你,我這里舉個例子而已,記得在頭文件里加上頭文件保護符哦!如果你告訴我你不知道什麼是頭文件保護符,我強烈建議你不要再往下看了..立刻去買一本C++primer吧);
在global.h文件中.聲明你所需要的所有全局變數,以下是 global.h的內容:
#ifndef GLOBAL_H
#define GLOBAL_H
extern int g_i; // 此處是聲明,另外,在全局變數前加一個 g_ 是好習慣.
#endif
然後新建一個 global.cpp文件,包含 global.h文件,接著,定義所有的全局變數,
以下是global.cpp的內容:
#include "global.h"
int g_i = 1982; // 此處是定義!!!
至此,一切搞定,最後,在你需要用到全局變數的cpp文件中包含 global.h吧...比如你的a.cpp和b.cpp; 編譯順利了吧?
/////////////////////////////////////////////
看到樓主的新問題了..我再補充回答一下.
問題1:我的疑問是,如果在my.cpp中定義了theApp,則必須在mfc.cpp中用extern聲明theApp,否則編譯出錯;但是如果在mfc.cpp中定義theApp,則不必在my.cpp中聲明,編譯也能夠通過,這是為什麼呢?
我的回答: 這個問題還是聲明和定義的問題.我之前說過了.一個變數(比如你的這個theApp),在整個程序中只能定義一次, 然後在需要使用它的地方,要先聲明後使用.
因此,看看實際情況:你在my.cpp中定義了theApp,當你在mfc.cpp中要使用它,當然要先聲明它咯,而聲明變數必須加上extern,不然就變成定義了,那麼就會導致你在my.cpp和mfc.cpp中定義同名全局變數兩次,自然就無法通過編譯.
而如果你在mfc.cpp中定義theApp的話,因為在my.cpp中沒有直接用到 theApp.所以,就不需要聲明了.這下清楚了吧?呵呵.
還有,補充一個基礎知識,,我們通常寫 int i; 這樣的語句是"定義","定義"實際上就起到了"聲明"的作用; 所以,如果你不是定義變數,而是單純要聲明一個外部的全局變數(也就是其他cpp文件里的全局變數)的時候,是肯定要加extern的.
我覺得樓主是對 與要加extern感到詫異.
問題2:
這個程序我運行的結果是只有構造函數的那些輸出語句執行了,而析構函數的那些輸出語句並沒有執行,這又是為什麼呢?
這個講起來有點多.涉及到一個C++程序的啟動過程:我簡單地說說,
以windows為例,點擊一個exe程序後,系統創建一個"進程內核對象",創建4G虛擬內存空間以及其他的一些執行程序需要的資源,然後創建"線程內核對象",啟動一個線程(也就是主線程了),這個線程調用一個 C++ startup函數,該函數會初始化 你的程序中的所有全局變數,( 這個時候你就看到你 theApp的那些基類的構造函數的執行,並列印出來),所有全局變數構造好以後,才開始執行你寫的main函數.
然後,你的main函數 return了.這時,執行一個C++執行期函數exit(),析構你的所有全局變數(也就是theApp), 但這個時候你的console窗口已經退出了.所以你看不到那些析構函數執行時的列印信息了.呵呵.
另外:我真的非常推薦樓主先好好看看<<C++ primer>>和<<effective C++>>這兩本書,不要把<<深入淺出mfc>>當成C++教材來看,雖然這本書很好,並且通過mfc,很好地示範了C++ 繼承,虛函數的妙用.但是,<深入淺出mfc>的作者侯捷說的好:勿於浮沙築高台.. 基礎打牢非常關鍵. 當你把C++的基礎知識搞清以後,再看深入淺出 mfc 其實是很簡單的..
5. vc2010怎麼進行c語言編譯
1,在windows桌面中Visual Studio打開軟體並新建項目。
6. (VC6.0)1.輸入源程序後,如何編譯該程序 2.如何鏈接程序生成可執行文件 3.如何運行程
1單擊主菜單欄中的build編譯
2在得到後綴為obj的目標程序後選擇build菜單下的build選項,表示要求連接並建立一個可執行文件。
3得到可執行文件後選擇build菜單下!execute文件名.exe,執行文件。
7. 用VS2010怎麼編譯,調試,運行Vc++文件
vc++就可以。
你下載一個qt-vs-addin-1.1.9.exe,這個支持vs2010,可以直接在裡面建立qt的項目。我用的是這個版本,qt是qt-everywhere-opensource-src-4.7.3.zip,操作系統是xp。
8. 在C語言中,完成C源文件編輯後到生成執行文件的步驟是什麼
編譯鏈接,期間查找錯誤並更正,重復編譯鏈接過程,知道修改正確。然後得到可執行文件。