編譯二進制過程
開發C程序有四個步驟:編輯、編譯、連接和運行。
任何一個體系結構處理器上都可以使用C語言程序,只要該體系結構處理器有相應的C語言編譯器和庫,那麼C源代碼就可以編譯並連接到目標二進制文件上運行。
1、預處理:導入源程序並保存(C文件)。
2、編譯:將源程序轉換為目標文件(Obj文件)。
3、鏈接:將目標文件生成為可執行文件(EXE文件)。
4、運行:執行,獲取運行結果的EXE文件。
(1)編譯二進制過程擴展閱讀:
將C語言代碼分為程序的幾個階段:
1、首先,源代碼文件測試。以及相關的頭文件,比如stdio。H、由預處理器CPP預處理為.I文件。預編譯的。文件不包含任何宏定義,因為所有宏都已展開,並且包含的文件已插入。我歸檔。
2、編譯過程是對預處理文件進行詞法分析、語法分析、語義分析和優化,生成相應的匯編代碼文件。這個過程往往是整個程序的核心部分,也是最復雜的部分之一。
3、匯編程序不直接輸出可執行文件,而是輸出目標文件。匯編程序可以調用LD來生成可以運行的可執行程序。也就是說,您需要鏈接大量的文件才能獲得「a.out」,即最終的可執行文件。
4、在鏈接過程中,需要重新調整其他目標文件中定義的函數調用指令,而其他目標文件中定義的變數也存在同樣的問題。
『貳』 c語言是如何編譯成二進制
計算機專業有門課程叫做《編譯原理》,詳細講述了怎麼把高級語言翻譯成匯編語言活著機器能看懂的二進制代碼。
簡單的說,C語言是通過編譯器翻譯成二進制代碼的(就像英譯漢的軟體把英文翻譯成漢語一樣。把高級語言翻譯成機器語言過程很復雜,學了編譯原理就懂了)。還有編譯器可以用各種語言編寫,C語言可以被用C語言寫的編譯器來編譯。
『叄』 C語言源程序的編譯過程包括哪三個階段
編譯:將源程序轉換為擴展名為.obj的二進制代碼
連接:將obj文件進行連接,加入庫函數等生成可執行文件
運行:執行可執行文件,有錯返回修改,無錯結束
『肆』 python如何編譯生成二進制文件
1、可以
2、當你編輯運行py文件後,就會生成對應文件名的pyc文件。
3、pyc是一種二進制文件,是由py文件經過編譯後,生成的文件,是一種byte code,py文件變成pyc文件後,載入的速度有所提高,而且pyc是一種跨平台的位元組碼,是由python的虛擬機來執行的,這個是類似於JAVA或者.NET的虛擬機的概念。pyc的內容,是跟python的版本相關的,不同版本編譯後的pyc文件是不同的。
總之,是可以的
『伍』 我們編寫的匯編語言和C語言如何能夠轉換成計算機可讀的二進制
將用高級語言寫成的程序變成機器可識別的二進制代碼的過程稱為編譯過程.
因為在計算機中,各種信息和數據都是以文件形式存放的.在編輯方式下建立起來的程序文件稱為源程序文件,簡稱源文件(如noname.c),相應的程序叫做源程序.源程序是用高級語言編寫的,它不能直接在機器上運行.因為計算機並不能識別源程序,它僅認識規定范圍內的一系列二進制代碼所組成的指令數據,並按預定的含義執行一系列動作.通常把這些計算機能識別的二進制代碼稱為目標代碼.為了把源程序變成目標代碼,就需要有個"翻譯"做這種轉換工作.具體實現這一轉換功能的軟體就是編譯程序,如C語言編譯程序.
經編譯後生成的目標程序的文件叫做目標文件(如noname.o).
連接:因為程序中會用到庫函數或其他函數,所以目標程序還不能馬上在機器上運行,需要把它們連成一個統一的整體,這就是連接.經過連接就把分離的目標程序連成完整的可執行程序,對應的文件是可執行文件.
運行:運行可執行文件,可得到相應的結果.如果發現運行結果不正確,那麼就要分析出錯原因,然後重新進入編輯方式,修改源程序.經編輯之後,再重復上述的編譯,連接,運行等步驟.
我們用QASM寫的是源程序,編寫好的程序編譯後形成的.obj是目標文件。.obj通過連接程序後形成.exe可執行程序。(WIN系統中程序編譯過程)
深入講解見參考資料
『陸』 C/C++語言編譯生產可執行的二進制文件的過程求大神詳盡解釋,
預編譯。編譯器將你的.c、.cpp源代碼,通過解釋其中的預編譯指令,將源代碼轉換成相應的沒有任何預編譯指令的代碼。
編譯、優化。將上一步的代碼編譯成匯編指令,並作一定優化,形成對應的.s匯編代碼
匯編。將.s文件匯編成機器碼,形成對應的.o目標文件,此時是不可執行的二進制文件。生成對應的清單文件。為了連接需要,還會生成未定向符號表、導出符號表、地址重定向表等等。
連接。先根據對應的清單文件、連接文件及之間的調用關系,決定所有的目標文件及引用的庫文件在最後可執行文件中的位置;然後做一些其他事情,比如根據符號表等將目標文件中的符號地址補全等等;最終得到可執行文件。
這只是我個人的簡單理解,更詳盡的解答都可以寫成好幾本書了=_=望採納~
『柒』 二進制如何編程
1、打開易語言新建一個windows程序進入下圖界面。
『捌』 如何使用CANdb++編譯開二進制關量報文
簡單的說,C語言是通過編譯器翻譯成二進制代碼的(就像英譯漢的軟體把英文翻譯成漢語一樣。把高級語言翻譯成機器語言過程很復雜,學了編譯原理就懂了)。還有編譯器可以用各種語言編寫,C語言可以被用C語言寫的編譯器來編譯。
『玖』 C語言如何編譯成可以直接在CPU運行的二進制碼
路過。。。話說你要二進制文件幹啥呢,我的大學老師告訴我,懂二進制的全世界就只有那麼幾個
『拾』 如何將一個函數編譯成二進制文件
通過下面這條命令,main.c和swap.c 就產生了一個可執行二進制文件swap
》gcc mian.c swap.c -o swap
那麼這條命令是么樣把源程序變成可執行程序的呢?
步驟如下:
1、驅動程序首先調用C預處理器(CPP)把源文件翻譯成一個ASCII中間文件mian.i,預處理器會把#include所包含的內容都插入到聲明的位置,並且做宏替換,把main.c 文件的第3行 的SIZE替換成2(注意這里只是做簡單的文本替換)。
2、接下來驅動程序的C編譯器將main.i翻譯成匯編語言程序main.s
3、然後驅動程序的匯編器將匯編語言程序main.s 翻譯成可重定位的二進制文件main.o
4、最後運行鏈接器將main.o 與swap.o 以及一些必要的系統目標文件(比如你將調用的printf函數就是printf.o)連接起來變成一個可執行的二進制文件。