當前位置:首頁 » 編程軟體 » 目標代碼插樁需要重新編譯程序嗎

目標代碼插樁需要重新編譯程序嗎

發布時間: 2023-09-08 04:19:04

1. 編譯是將整個源程序代碼文件一次性翻譯成目標程序代碼,最終生成可執行文件,對么

正確。
編譯(compilation , compile)
1、利用編譯程序從源語言編寫的源程序產生目標程序的過程。
2、用編譯程序產生目標程序的動作。 編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。
編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優化;目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發現有語法錯誤,給出提示信息。

2. 編譯的目標代碼

目標代碼生成是編譯的最後一個階段。目標代碼生成器把語法分析後或優化後的中間代碼變換成目標代碼。目標代碼有三種形式:
① 可以立即執行的機器語言代碼,所有地址都重定位;
② 待裝配的機器語言模塊,當需要執行時,由連接裝入程序把它們和某些運行程序連接起來,轉換成能執行的機器語言代碼;
③ 匯編語言代碼,須經過匯編程序匯編後,成為可執行的機器語言代碼。
目標代碼生成階段應考慮直接影響到目標代碼速度的三個問題:一是如何生成較短的目標代碼;二是如何充分利用計算機中的寄存器,減少目標代碼訪問存儲單元的次數;三是如何充分利用計算機指令系統的特點,以提高目標代碼的質量。

3. 源代碼有什麼用

源代碼的作用為:

1、生成目標代碼,即計算機可以識別的代碼。

2、對軟體進行說明,即對軟體的編寫進行說明。為數不少的初學者,甚至少數有經驗的程序員都忽視軟體說明的編寫,因為這部分雖然不會在生成的程序中直接顯示,也不參與編譯。但是說明對軟體的學習、分享、維護和軟體復用都有巨大的好處。

注意:需要指出的是,源代碼的修改不能改變已經生成的目標代碼。如果需要目標代碼做出相應的修改,必須重新編譯。

(3)目標代碼插樁需要重新編譯程序嗎擴展閱讀:

源代碼的版權分類:

1、自由源代碼:自由源代碼一般是不僅可以免費得到,而且公開源代碼,任何用戶只要想用都可以去借鑒、使用或者修改自由源代碼。

2、非自由源代碼:非自由源代碼則是不公開源代碼。所有一切通過非正常手段獲得非自由軟體源代碼的行為都將被視為非法。所以如果未經源代碼所有者私自使用源代碼是侵犯版權的行為,嚴重的會被追究相應的法律責任。

4. 為什麼c/c++開源庫使用前需要編譯

這樣可以運行,但有兩個問題:

  1. 每個新程序要使用開源庫中的api,都需要重新編譯部分甚至整個開源庫源代碼,這會浪費大量的時間;

  2. 如果有多個程序同時使用同一個庫,每個程序都將生成一份這個庫的二進制文件,這會浪費大量的磁碟空間;當這些程序同時運行時,每個程序的內存中都會裝載一份庫的二進制代碼,這會浪費大量的內存空間。

因此,直接將第三方庫的源代碼包含到當前程序的代碼中編譯是效率非常低下的方式,實際中除非極特殊情況,不會考慮使用這種方式,而是將開源庫源代碼編譯成二進制的動態鏈接庫,其他程序要使用其中的API時,只需要指定動態鏈接庫的入口點,程序運行時載入動態鏈接庫 並找到其中的函數入口點就可以調用開源庫API。並且,當有多個程序調用此動態鏈接庫時,只會佔用一份內存空間。

5. 為什麼我每次編譯都是全部重新編譯

這里以 C 語言源程序為例,關於多個 C 語言源程序之間的編譯順序問題,這個是需要在 MAKEFILE 文本文件中寫好多個 C 語言源程序的先後順序,如果多個 C 語言源程序的先後順序寫得不正確,那麼在使用 make 命令對 MAKEFILE 做相關的編譯、鏈接工作時,就會把所有的 C 源程序都重新編譯一遍(按理說:MAKEFILE 的最大好處就是:如果整個軟體系統由多個 C 源程序組成,但是只有其中一個 C 源程序的代碼做了改動,而其他的源代碼沒有做過任何改動,那麼只需要編譯這一個 C 源程序的目標文件,然後再和別的 C 源程序的目標文件相鏈接,生成最終的可執行文件即可,而不需要整個都重新編譯一遍)
你再仔細把你的 MAKEFILE 文件中的各個 C 源程序的先後次序檢查一下,看看是否寫得有錯誤。寫 MAKEFILE 文件也是需要仔細推敲的。

6. 修改了config文件,程序是否必須重新編譯

不需要重編譯的。
一般config文件記錄一些結構化的配置信息。程序在執行的時候讀取,再格式化後使用。配置文件跟執行代碼是兩部分,不需要重新編譯。

熱點內容
wifi無法上網怎麼配置網路 發布:2024-11-19 20:25:38 瀏覽:437
我的世界網易手機好玩的pvp伺服器 發布:2024-11-19 20:09:29 瀏覽:331
安卓手機微信怎麼改號 發布:2024-11-19 19:56:13 瀏覽:91
python的字元串輸出 發布:2024-11-19 19:48:41 瀏覽:630
android的簽名 發布:2024-11-19 19:47:10 瀏覽:489
padavan內核修改編譯 發布:2024-11-19 19:46:53 瀏覽:219
apex正在載入並編譯著色器閃退 發布:2024-11-19 19:40:13 瀏覽:282
android導圖 發布:2024-11-19 19:37:48 瀏覽:975
雲伺服器慢慢變卡 發布:2024-11-19 19:32:33 瀏覽:664
如何找到伺服器參數 發布:2024-11-19 19:19:33 瀏覽:678