導航:首頁 > 源碼編譯 > 編譯之後形成什麼不能直接運行

編譯之後形成什麼不能直接運行

發布時間:2022-06-21 19:33:26

A. C語言源程序文件經過編譯連接之後生成一個後綴為_____的文件。

如果只生成一個文件,那麼這個題目答案是B。編譯(compile)後生成目標文件,後綴:.obj。也就是機器碼。

然後鏈接器(Linker) 連接生成可執行文件,後綴:.exe。最後運行命令(go),直接運行.exe文件。

(1)編譯之後形成什麼不能直接運行擴展閱讀:

簡單講,編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。

一個現代編譯器的主要工作流程:源代碼(source code) →預處理器(preprocessor) →編譯器(compiler) →目標代碼(object code) →鏈接器(Linker) → 可執行程序(executables)

高級計算機語言便於人編寫,閱讀交流,維護。機器語言是計算機能直接解讀、運行的。

編譯器將匯編或高級計算機語言源程序(Source program)作為輸入,翻譯成目標語言(Target language)機器代碼的等價程序。

源代碼一般為高級語言 (High-level language), 如Pascal、C、C++、java、漢語編程等或匯編語言。

而目標則是機器語言的目標代碼(Object code),有時也稱作機器代碼(Machine code)。

對於C#、VB等高級語言而言,此時編譯器完成的功能是把源碼(SourceCode)編譯成通用中間語言(MSIL/CIL)的位元組碼(ByteCode)。

最後運行的時候通過通用語言運行庫的轉換,編程最終可以被CPU直接計算的機器碼(NativeCode)。

B. c++中在編譯後得到的目標文件為什麼不能直接運行

因為你在VC的VC程序使用的庫,例如插座寫此套接字時VC的功能WINSOCK.H頭文件並在Linux系統下的編輯器,當然是克+ + netinet / in.h中沒有將編譯。與VC編譯器生成你必須編寫這些過程連接庫給你一份好工作的目標文件。但在其他編輯器如g + +這些都必須編寫自己的makefile文件來完成。

C. c語言用vc++6.0編譯生成的exe文件為什麼不能直接運行

就是選擇了Win32ConsoleApplication後,再新建一個空工程,再新建一個.cpp的程序,在命名時直接命為***.c即可。代碼直接寫在.c文件中啊。然後編譯鏈接後在Debug文件夾內就有.exe文件了。

D. c語言中編譯後得到的目標文件為什麼不能直接運行,必須連接後才能運行

一編譯單元(一個c文件)就會得到一個目標文件,而最終程序是一個EXE。所以需要鏈接。
同時鏈接需要按照操作系統的可執行文件格式要求組織。

E. 編譯後的可執行程序為什麼不能獨立運行

如果你的程序調用了一些第三方的插件、組件等擴展程序,則運行時也必須帶上這些程序的支持文件(通常是一些dll文件),另外,如果你的程序需要調用一些外部資源如圖片、音樂、視頻等,運行時也必須帶上它們,最典型的就是如果你的程序使用了資料庫,那麼牽涉的方面就太多了,必須保證運行環境支持你所需的資料庫格式,還要附帶數據文件,必要時還必須進行數據轉換和升遷。總之,如果遇到這些情況,你的可執行程序就不可能做到完全獨立運行。

F. vc++編譯出來後自動產生了debug文件裡面的exe文件為什麼不能直接運行

是這樣,你在新建VC++工程的時候,其中有一項是選擇將MFC庫作為共享的DLL還是靜態的DLL。
因為MFC程序在運行時需要一些
DLL文件
的支持,你從
集成開發環境
下編譯運行時,有默認的路徑來調用這些所需的DLL,因此運行不會有問題。而當你單獨運行文件夾下的
可執行程序
時,
如果一開始
選擇的是作為共享的DLL,則就會因為可執行程序的當前路徑下沒有所需的DLL文件而無法運行。
解決方法:
一種是打包程序,生成程序的安裝包,就像商業軟體一樣。
另一種就是採用作為靜態的DLL方式,即將程序要用到的庫集成到生成的exe程序中。這樣程序會稍稍大一點點,相當於一個
綠色軟體
。你可以點擊工程菜單下設置菜單項,常規
選項卡
,選擇作為靜態的DLL,重建工程就可以了。

G. 執行C語言一定要先編譯么,不可以直接執行么

一般來說編譯過後就成了基本上能執行的2進制代碼。但是這些2進制代碼並不完善,一個程序往往需要調用不止一部分的代碼,所以需要把這些代碼全部整合起來才能執行。
即時你的程序看起來只有一個文件,但是編譯過後,多多少少裡面至少會調用到一些操作系統功能,和其它的一些設置,所以依然需要組建這個過程把這個程序和這些系統默認的代碼組建起來形成一個完成、單一的可執行文件。所以一般組建過程就包含了組建內部和外部代碼,一般來說內部代碼就是我說的系統預留的必要的一些代碼(例如怎麼具體完成把一些字元顯示在屏幕上呀這些功能),而外部代碼就是額外的調用自己寫得或者別人寫得其它程序功能(往往當你的程序調用了非c標准函數的時候)。
所以就算你的代碼可以編譯,但是可能因為組建並不成功(例如需要組建的代碼本身有bug,或者丟失,或者版本不匹配),你的程序依然可能無法正確運行。

H. 為什麼用code blocks編譯出來的程序生成的exe文件不能直接運行,運行就會出現這個缺少dll文件問題

你全部重新編譯一次就好了,或者換個編譯器,例如devc++,編譯完只剩下一個EXE程序

I. 請說明編輯、編譯、連接的作用。在編譯後得到的目標文件為什麼不能直接運行

編輯指源代碼的編輯,編譯將源文件編譯為機器目標文件,
但這時還不能運行,通過連接將符號連接,入口點等設置好
後才可運行。

J. 為什麼我的程序編譯完成後不能運行

首先確定jdk和自己的系統一致 X86對應32 X64對應64在 此次下載
win7環境變數配置 (Xp等系統略有不同)
1.右鍵計算機 —> 屬性 —> 左邊的「高級系統設置」 —> 「高級」選項卡 —> 下面「環境變數」系統環境變數
變數名 值
classpath 點分號默忘記了-----》 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME\lib\tools.jar;
path 點分號默忘記了-----》 .;%JAVA_HOME%\bin
上面之間復制 .;%JAVA_HOME% 是調用jdk的安裝路徑
這樣 升級jdk後 只需要修改jdk版本號就ok了 即只需要改一個變數值即JAVA_HOME的
下面的變數名復制 安裝路徑復制
JAVA_HOME F:\Program Files\Java\jdk1.6.0_31
在運行 java和javac命令 正常則為成功

導致運行找不到文件的問題
第一種情況

首先在確定文件名 是否有隱藏後綴名的問題 即文件名實際是X.java.txt 出現這種情況就要 修改操作如下

win7 在控制面板(大圖標模式) 找文件夾選項 在點擊查看 取消以勾選的隱藏已知文件的擴展名

Xp 把桌面我的電腦打開 在彈出對話框上面找到文件夾選項 後面操作基本相似然後修改 文件後綴名(擴展名)

第二種 情況 范琺頓貉塥股舵癱罰凱 運行也可以使用下面的 javac 和java命令

你jdk安裝在c盤 而文件在其他盤 導致的這時dos界面運行命令應該先是

X: X代表盤符 即進入X盤
cd/X 這X代表文件夾名 進入文件夾

在運行 javac x.java x.java是文件名 編譯文件檢測語法錯誤

java x x 代表文件名 但沒有擴展名

另外可以下載eclipse 運行java
這樣就完成了

閱讀全文

與編譯之後形成什麼不能直接運行相關的資料

熱點內容
編程培訓機構學費 瀏覽:499
華為麥芒5伺服器地址 瀏覽:744
怎麼把app裡面的app上鎖 瀏覽:938
java數字運算 瀏覽:164
java讀取上傳的文件 瀏覽:373
xp怎麼加密文檔 瀏覽:273
壓縮機風扇電機轉速慢 瀏覽:88
文件伺服器如何查看訪問人員 瀏覽:127
絕佳買賣指標加密 瀏覽:758
git分支編譯 瀏覽:156
51單片機c語言應用程序設計實例精講 瀏覽:562
華為安卓手機編譯器 瀏覽:48
怎樣在打開微信前加密 瀏覽:666
旺旺聊天記錄怎麼加密 瀏覽:413
王安憶長恨歌pdf 瀏覽:621
mobile文件夾可以卸載嗎 瀏覽:282
什麼是2通道伺服器 瀏覽:346
mc正版怎麼開伺服器地址 瀏覽:408
樂高解壓朋友圈 瀏覽:14
linux軟raid性能 瀏覽:369