⑴ Android系統編譯指令make 、mmm、mm優缺點比較
Android 系統提供了三種指令用於編譯,他們分別為make、mmm、mm,這三個指令編譯的優缺點如下:
例如:make MediaProvider z這種模式對應於單個模塊的編譯。它的優點是:會把該模塊依賴的其他模塊一起跟著編譯。例如:make libmedia 就會把libmedia依賴庫全部編譯好。當然缺點也會很明顯,那就是它會搜索整個源碼來定位MediaProvider 模塊所使用的Android.mk文件。並且還要判斷該模塊依賴的其他模塊是否有修改。所以編譯時間比較長。
注意:一般的編譯方式都會採用增量編譯,即只編譯發生變化的目標文件,但有時則需要重新編譯所有目標文件,那麼就可以使用make 命令行的-B選項。例如:mm -B 模塊名,或者mm -B、mmm -B。在mm 和 mmm內部也是調用make命令的,而make的-B選項將強制編譯所有的目標文件。
⑵ 解釋執行的語言相比編譯執行的語言有什麼優缺點
我自己理解的解釋執行的優點,不依賴於平台,因為每次都會根據不同的平台對語句進行解析,像JS就凳咐是一種邊解釋邊執行的語言,不管是在windows還是unix都可以直接用解釋執行的缺點,解析是需要時間的,每次都解析在很多情況下都是相當於每次都在做重復功,這樣運行的明唯效率比較低。盡可能的減少重復功,這也是現在為什麼很流行的緩存的原因,但是解析執行這種方式就沒無法做到了編譯執行的優點,所謂的編譯執行就是先對編程進行編譯,生成一個obj文件,然後再拿來運行,它的優點恰巧就是解釋執行的缺點的反義,去除了每次都解激粗培析的問題編譯執行的缺點,也是恰巧是解釋執行優點的反義。就像C語言,你在windows下編譯的程序,拿到unix下運行,當然如果只是簡單的scanf,printf是可以的,但是像指針,內存分配,文件操作,多線程等,在一些相對復雜的系統問題就嚴重了。 更可怕的是拿源碼到unix環境下編譯通過了,但是運行卻出問題,這種問題最要人命。 所以一般的做法都是這個程序會用在什麼系統,就到什麼系統環境去開發
⑶ 解釋性語言和編譯性語言各有什麼優缺點
最簡單的區別就是,
解釋性語言是邊解釋,邊執行,它依賴於一個解釋器。執行速度比較慢
編譯性語言,是編譯成,計算機可執行的二進制代碼,直接運行,執行速度比較快,
⑷ 什麼是編譯,什麼是解釋,兩者有什麼優點和缺點
編譯就是全部編譯完執行,解釋就是讀一句執行一句
⑸ 編程語言C++的模板元編程技術有什麼優點和缺點 在游戲編程中用的多麼
優點在於增強代碼重用,把運算轉移到編譯過程提高運行速度。缺點是錯誤控制難度比較大,模板一旦出錯想確定錯誤位置甚至錯誤原因有時候都是比較復雜的。另外一個就是模板容易搞出很復雜的類名或者函數名來,不過這個一般是可以想辦法避免的。
模板主要用於庫開發,上層開發一般還是不會用的。也就是說游戲可能只有核心部分會用到模板。
⑹ 在使用單片機中,匯編語言和c語言各有什麼優缺點
一、匯編語言:
缺點:匯編語言屬於低級語言,難理解,編程效率低,編程容易出錯。
優點:程序執行效率高,佔用資源少, 方便對最底層的一些東西進行操作。
二、C語言:
缺點:危險性高,開發周期長,可移植性不如JAVA。
優點:語句少但是靈活度高,針對過程的言語相比於非結構化言語條理性很好接近人類的邏輯思維,相比於模塊化言語和面向對象的言語他又比較接近底層的一些東西,而且效率也高(只比匯編低%10~20)移植性也好。
(6)編譯的優點和缺點擴展閱讀:
不難看出機器語言作為一種編程語言, 靈活性較差可閱讀性也很差,為了減輕機器語言帶給軟體工程師的不適應,人們對機器語言進行了升級和改進:用一些容易理解和記憶的字母,單詞來代替一個特定的指令。
通過這種方法,人們很容易去閱讀 已經完成的程序或者理解程序正在執行的功能,對現有程序的bug修復以及運營維護都變得更加簡單方便,這種語言就是我們所說的匯編語言, 即第二代計算機語言。
⑺ 編譯執行的優缺點
兼容性差,例如在windows平台上寫的編譯程序一般不可以在unix平台上運行。當然,如果只是簡單的scanf,printf是可以的,但是像指針,內存分配,文件操作,多線程等,在一些相對復雜的系統問題就嚴重了。 更可怕的是拿源碼到unix環境下編譯通過了,但是運行卻出問題,這種問題最要人命。 所以一般的做法都是這個程序會用在什麼系統,就到什麼系統環境去開發