Ⅰ 用C語言編的程序,要生成可執行文件的時候,要編譯、鏈接,編譯是什麼意思啊鏈接是什麼意思編譯和鏈接
編譯就是把C代碼轉換成CPU可執行的機器指令,每個.c文件生成一個.obj文件。
鏈接就是把生成的(多個) .obj 文件及用到的庫文件(.lib)一起組合生成可執行文件(.exe)。
Ⅱ 執行C語言一定要先編譯么,不可以直接執行么
一般來說編譯過後就成了基本上能執行的2進制代碼。但是這些2進制代碼並不完善,一個程序往往需要調用不止一部分的代碼,所以需要把這些代碼全部整合起來才能執行。
即時你的程序看起來只有一個文件,但是編譯過後,多多少少裡面至少會調用到一些操作系統功能,和其它的一些設置,所以依然需要組建這個過程把這個程序和這些系統默認的代碼組建起來形成一個完成、單一的可執行文件。所以一般組建過程就包含了組建內部和外部代碼,一般來說內部代碼就是我說的系統預留的必要的一些代碼(例如怎麼具體完成把一些字元顯示在屏幕上呀這些功能),而外部代碼就是額外的調用自己寫得或者別人寫得其它程序功能(往往當你的程序調用了非c標准函數的時候)。
所以就算你的代碼可以編譯,但是可能因為組建並不成功(例如需要組建的代碼本身有bug,或者丟失,或者版本不匹配),你的程序依然可能無法正確運行。
Ⅲ 能將c語言的預計用在shell腳本中嗎,它的執行需要經過編譯鏈接嗎,為什麼
不可以,C的源代碼必須要經過編譯連接後才能執行,shell是解釋型的
腳本語言
,不需要編譯。
Ⅳ C語言可以不用編譯就被計算機識別執行對嗎
C語言是高級語言,要經過編譯才能被電腦識別執行。
Visual C++集成了MFC6.0,於1998發行,又稱vc98。發行至今一直被廣泛地用於大大小小的項目開發。但是,這個版本在WindowsXP下運行會出現問題,尤其是在調試模式的情況下(例如:靜態變數的值並不會顯示)。 這個調試問題可以通過打一個叫「Visual C++ 6.0Processor Pack」的補丁來解決。奇怪的是,這個網頁強調用戶也必須運行Windows 98、Windows NT4.0、或Windows 2000。這個C++版本對win7的兼容性非常差,有大大小小的兼容性問題。微軟不推薦安裝在windows7上。
希望我能幫助你解疑釋惑。
Ⅳ c語言為何需要編譯和連接才能運行
的文件(也稱為源代碼)而已,需要經過1定的處理才能轉換成機器上可運行的可履行文件。
我們將對C語言的這類處理進程稱為編譯與鏈接。
Ⅵ 初學c語言時,輸入程序後運行,是執行還是預編譯預編譯是什麼為什麼最開始要有#include如
預編譯是把一個工程中較穩定的代碼預先編譯好放在一個文件里.這些預先編譯好的代碼可以是任何的C/C++代碼。而輸入程序後的運行,只是將代碼編譯成了obj(object)文件,所有obj文件經鏈接(link)成為可執行文件。而你說的執行,應該就是點擊最後生成的.exe文件了。開始要有的#include,是表明要包含的頭文件,或者其它的保存的代碼文件。只有這樣,你才可以引用到那個文件中的代碼,來供目前的文件來使用。
至於你說的什麼大型游戲的編程,應該也是這樣的一套,因為C語言就是上述生成文件的套路。游戲的編程,初學的話可以建議看《游戲編程入門》( 美 哈本),這本書基於windows平台,是為幾乎沒有游戲開發經驗的初學者寫的,循序漸進,從2D講到3D 的一些基本技術,其中的例子也非常經典,看完書基本就可以做出不錯的2D 游戲了,也有了一定的3D基礎了,之後再看一些深入的書籍像《Windows游戲編程大師技巧》。
Ⅶ 各位大蝦幫幫忙!!!計算機二級 C語言上機的三道題全部都要編譯運行么
只有編程題才需要編譯運行。因為編程題評分的時候評的是運行後的結果。填空改錯只需要保存即可。編程題如果沒有運行的話是0分。因為沒有運行的編程題不會產生out文件,也就是評分文件。
Ⅷ 一個C語言源程序經過編譯後就可以執行了 這句話對嗎
對的,C語言是先編譯後執行,一般只要不出錯誤,編譯完就可以執行力。有時候還要考慮是否跨平台。
Ⅸ c語言中的源程序必須經過編譯連接生成可執行程序才能運行,這句話是對不對
哥們,這么理解是對的,不過感覺有點表面。
建議看看計算機一些原理,像你說的這個問題我會想到,計算機最終只能識別二進制碼,
所以其實不管我們一切啥語言,最終都是通過編譯器編譯成二進制碼,計算機才能識別
而去運行,而c語言編寫的程序,肯定是要經過一系列的編譯,鏈接,生成可執行的文件。
在windows系統中,執行文件都是.exe為擴展名的。不過在linux系統中就不一樣了,linux
系統並不區分擴展名,所以也就無所謂什麼.exe之類的文件,只要知道最終生成可執行的
二進制文件就可以了。