導航:首頁 > 源碼編譯 > 編譯器如何編出可執行程序

編譯器如何編出可執行程序

發布時間:2025-01-09 22:36:10

❶ c語言如何把c程序編譯成可執行的exe文件

1、編寫一段簡單的代碼,如下圖所示,編輯一段簡單的輸出語句。

❷ 如何將MATLAB程序編譯成獨立可執行的程序

一、生成獨立可執行的程序(exe文件)步驟

1、安裝編譯器。可有多種選擇,matlab自帶了一個LCC,推薦使用VC++6.0,我基於VS 2003實現。

2、設置編譯器。在matlab命令行輸入mbuild –setup以及mex –setup,選擇安裝的c編譯器。

3、調用編譯器。此處使用MATLAB下的一個GUI平台deploytool下完全實現。在命令窗口輸入deploytool即可看到。具體使用方法請Help。
當然,也可以輸入mcc -m filaname, filaname為要轉成exe的m文件;
註:在以前的版本中,用編譯命令mcc -B sglcpp filaname;自2006的版本後,替換為mcc
-mfilaname;

4、安裝<matlab
path>\toolbox\compiler\deploy\win32目錄下的MCRInstaller。

二、脫離matlab運行可執行程序
MCR是由matlab的運行環境,佔用不到300M的對於用不同matlab版本生成的exe文件,MCR版本也會有不同,因此,在程序打包時,最好將相應版本的MCR一起打包。MCR環境的設置文件存放目錄如下:

<matlab path>
\toolbox\compiler\deploy\win32
文件名為MCRInstaller.exe。可將其拷貝到自己的文件夾中,(7.0以前的版本是mglinstaller.exe)。
在MATLAB里運行可執行程序的辦法是在前面加一個!,比如:!picshow,後綴名可有可無。
在其它沒有安裝matlab的機器上運行exe文件前:
首先安裝matlab的運行環境。在同一機器上可以並存不同版本的matlab環境(換句話說不同版本不兼容)。
其次是要將「MCRinstaller.exe安裝目錄\runtime\win32」這個路徑添加到該計算機的環境變數中,通常是自動載入。
如果沒有,也可手動安裝,添加的方法是:
右擊「我的電腦」「屬性」「高級」「環境變數」「添加」指定一個變數名,然後將上述路徑復制到裡面就可以了。
註:在安裝過程中會彈出讓安裝Microsoft.NETFramework可以不用安裝。
最後就是將編譯生成的相相關文件拷貝到同一目錄下,雙擊即可運行。
問題:目前此方法可完全運行在沒有安裝MATLAB以及C/C++的電腦上,但是如果是在AMD的CPU可以運行,但是不會出現任何MATLAB編譯的界面。
美中不足就是,運行的時候dos的那個黑色地窗口一直存在。下面將實現去除黑屏的辦法:

消除運行MATLAB生成的exe程序的dos黑屏的辦法
基於MATLAB生成exe文件後,每次運行都存在dos黑屏的問題,現在可以通過以下方法解決:
方法一: 在命令窗口輸入:
cd(prefdir)
edit compopts.bat
在打開的文件最後添加以下語句:

A.VC環境下:

set
LINKFLAGS=%LINKFLAGS%/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup

B.LCC環境下:
set LINKFLAGS=%LINKFLAGS%
-subsystemwindows

C. Borland:

set LINKFLAGS=%LINKFLAGS% -aa

保存以後,再重新編譯m文件,生成的exe文件運行起來就沒有dos窗口了

方法二:使用suppress工具:
下載附件中的suppress壓縮包後解壓,(當然您可以自己去Google然後再下載)會看到一個suppress.ini文件,用記事本打開,然後將
其中「Name=test.exe」中text.exe的改為你生成的exe文件名。將suppress.exe(有個關盤和顯示器的圖標),改後的
suppress.ini放到你生成的exe的同目錄下。執行suppress.exe或者您自己生成的exe可以了。當然您可以自己修改
suppress.exe的名字,改為您自己想要的名字。

其中的方法一在使用後生成的exe再到沒有任何安裝MATLAB的機子上運行也不會有黑屏了。
方法二的缺點就是要同時存在您生成的exe以及supress.exe,必須在同一目錄下。

❸ 源程序到可執行程序的編譯過程

源代碼到可執行程序的編譯過程涉及四個關鍵步驟:預處理、編譯、匯編和鏈接。

預處理是程序編譯的第一步,由獨立的預編譯器處理,不屬於編譯器的直接工作。它主要負責處理預處理指令,如條件編譯,但並不涉及運行時間。

編譯階段將源代碼轉換成特定硬體平台的匯編語言,比如X86的x86匯編或ARM的ARM匯編,生成.s/.asm文件。這個過程涉及語法、詞法、語義分析等六大部分,以確保變數、函數等的正確使用和錯誤檢測。

編譯過程中,符號表管理至關重要,記錄了標識符及其屬性,如類型、內存佔用和地址,而錯誤管理則用於識別並報告語法錯誤(如拼寫錯誤、括弧匹配問題)和語義錯誤(如類型不匹配、作用域錯誤)。

從源程序到目標程序,可能會進行多次遍歷以優化代碼,但過多遍歷會增加編譯時間。最終,匯編階段將匯編語言轉換為機器語言的可重定位目標文件,如.o/.obj。

鏈接是編譯的最後一步,將目標文件、啟動代碼和庫文件結合,形成可執行的.exe文件。鏈接分為靜態和動態兩種,靜態鏈接時所有庫代碼會直接嵌入程序,而動態鏈接則依賴運行時查找庫。

❹ 用c語言編寫的程序怎樣生成可執行軟體。

基本:f.c--->f.obj--->f.exe
詳細說明:
自己編輯一段程序,這就是一個「源文件 (f.c 後綴.c的文件)」。源文件f.c經過編譯後得到「目標程序文件(f.obj 後綴.obj的文件)」,然後系統將目標程序文件f.obj輸入內存中,與系統提供的庫函數等(就是你在程序中調用的相關庫函數,像標准輸入、輸出,基本算數函數(在math.h中)等等)連接就得到了可執行的「目標程序(f.exe )」,也就是你所說的可執行軟體了。

閱讀全文

與編譯器如何編出可執行程序相關的資料

熱點內容
flooding演算法 瀏覽:412
福州地區吃飯用什麼app 瀏覽:950
榮耀大文件夾名稱大全 瀏覽:978
空白文件夾集中 瀏覽:13
php查看瀏覽器版本 瀏覽:633
怎麼用搜索引擎搜奧運會伺服器 瀏覽:207
蘋果手機使用軟體怎麼伺服器繁忙 瀏覽:584
長河全文在什麼app可以看 瀏覽:597
廣東dns伺服器雲伺服器 瀏覽:45
java等待喚醒 瀏覽:754
app系統中已鎖定什麼時候 瀏覽:328
qq在後台顯示加密 瀏覽:178
如何訓練演算法 瀏覽:462
ios查看壓縮文件 瀏覽:659
移除的app怎麼找回桌面 瀏覽:859
低級語言編譯器 瀏覽:30
pdf加文本 瀏覽:207
js用什麼加密 瀏覽:343
androiduc瀏覽器包名 瀏覽:378
wemall小程序源碼 瀏覽:426