當前位置:首頁 » 編程軟體 » 編譯方法

編譯方法

發布時間: 2022-01-08 19:10:55

源碼怎麼編譯

使用編譯器如VC++6.0,VC++2008

㈡ 編譯方式和解釋方式的根本區別是什麼

計算機內部運行時所能識別的語言是機器語言即0和1,我們普通編的程序或網站網頁都是用人能理解的工具編輯的源程序代碼,這種代碼電腦是不能直接識別和運行的。需要進行轉換成機器能識別的代碼。轉換過程有兩種形式。編譯方式和解釋方法。
編譯方式,就是把需要運行的源代碼通過工具一次性編譯成機器代碼如我們常見的文件名後.exe或.com的這種類型,電腦運行時直接運行編譯過的程序,速度運行快.
解釋方式:源程序代碼文件可能很很多,很長,每次程序運行時.都需要一個文件、一句一句調入電腦然後翻譯成機器代碼,再運行,時間長\運行速度慢。如現在網站常用的.asp就是這種格式。

java 運行時調用方法和編譯時調用方法有什麼不同

一個是在編譯時就確定一個是在運行過程調用中才確定的 -- 轉載以前看過的一個解釋,獲取能對你有幫助吧=====運行時類型識別(Run-time Type Identification, RTTI)主要有兩種方式,一種是我們在編譯時和運行時已經知道了所有的類型,另外一種是功能強大的「反射」機制。

要理解RTTI在Java中的工作原理,首先必須知道類型信息在運行時是如何表示的,這項工作是由「Class對象」完成的,它包含了與類有關的信息。類是程序的重要組成部分,每個類都有一個Class對象,每當編寫並編譯了一個新類就會產生一個Class對象,它被保存在一個同名的.class文件中。在運行時,當我們想生成這個類的對象時,運行這個程序的Java虛擬機(JVM)會確認這個類的Class對象是否已經載入,如果尚未載入,JVM就會根據類名查找.class文件,並將其載入,一旦這個類的Class對象被載入內存,它就被用來創建這個類的所有對象。一般的RTTI形式包括三種:

1.傳統的類型轉換。如「(Apple)Fruit」,由RTTI確保類型轉換的正確性,如果執行了一個錯誤的類型轉換,就會拋出一個ClassCastException異常。

2.通過Class對象來獲取對象的類型。如

Class c = Class.forName(「Apple」);

Object o = c.newInstance();

3.通過關鍵字instanceof或Class.isInstance()方法來確定對象是否屬於某個特定類型的實例,准確的說,應該是instanceof / Class.isInstance()可以用來確定對象是否屬於某個特定類及其所有基類的實例,這和equals() / ==不一樣,它們用來比較兩個對象是否屬於同一個類的實例,沒有考慮繼承關系。

反射

如果不知道某個對象的類型,可以通過RTTI來獲取,但前提是這個類型在編譯時必須已知,這樣才能使用RTTI來識別。即在編譯時,編譯器必須知道所有通過RTTI來處理的類。

使用反射機制可以不受這個限制,它主要應用於兩種情況,第一個是「基於構件的編程」,在這種編程方式中,將使用某種基於快速應用開發(RAD)的應用構建工具來構建項目。這是現在最常見的可視化編程方法,通過代表不同組件的圖標拖動到圖板上來創建程序,然後設置構件的屬性值來配置它們。這種配置要求構件都是可實例化的,並且要暴露其部分信息,使得程序員可以讀取和設置構件的值。當處理GUI時間的構件時還必須暴露相關方法的細細,以便RAD環境幫助程序員覆蓋這些處理事件的方法。在這里,就要用到反射的機制來檢查可用的方法並返回方法名。Java通過JavaBeans提供了基於構件的編程架構。

第二種情況,在運行時獲取類的信息的另外一個動機,就是希望能夠提供在跨網路的遠程平台上創建和運行對象的能力。這被成為遠程調用(RMI),它允許一個Java程序將對象分步在多台機器上,這種分步能力將幫助開發人員執行一些需要進行大量計算的任務,充分利用計算機資源,提高運行速度。

Class支持反射,java.lang.reflect中包含了Field/Method/Constructor類,每個類都實現了Member介面。這些類型的對象都是由JVM在運行時創建的,用來表示未知類里對應的成員。如可以用Constructor類創建新的對象,用get()和set()方法讀取和修改與Field對象關聯的欄位,用invoke()方法調用與Method對象關聯的方法。同時,還可以調用getFields()、getMethods()、getConstructors()等方法來返回表示欄位、方法以及構造器的對象數組。這樣,未知的對象的類信息在運行時就能被完全確定下來,而在編譯時不需要知道任何信息。

另外,RTTI有時能解決效率問題。當程序中使用多態給程序的運行帶來負擔的時候,可以使用RTTI編寫一段代碼來提高效率

㈣ debug和release兩種編譯方法的區別與聯系

Debug 為調試版本,Release 為發布版本,從開發者和用戶視角看,他們的區別如下:

一、從開發者視角,Debug和Release的區別,主要是編譯器的選項不同,Debug 包含調試信息,並且不作任何優化,便於程序員調試程序。Release 往往是進行了各種優化,使得程序在代碼大小和運行速度上都是最優的,以便用戶很好地使用。

Debug 版本 相關參數解釋:
參數 含義
/MDd /MLd 或 /MTd 使用 Debug runtime library(調試版本的運行時刻函數庫)
/Od 關閉優化開關
/D "_DEBUG" 相當於 #define _DEBUG,打開編譯調試代碼開關(主要針對assert函數)
/ZI
創建 Edit and continue(編輯繼續)資料庫,這樣在調試過程中如果修改了源代碼不需重新編譯
GZ 可以幫助捕獲內存錯誤

Release 版本 參數含義
/MD /ML 或 /MT 使用發布版本的運行時刻函數庫
/O1 或 /O2 優化開關,使程序最小或最快
/D "NDEBUG" 關閉條件編譯調試代碼開關(即不編譯assert函數)
/GF 合並重復的字元串,並將字元串常量放到只讀內存,防止被修改

二、使用者視角,我們下載軟體的時候,一般應該選擇Release版。Debug一般比測試版更粗,主要提供給高級測試者反饋修改意見。

㈤ 請問編譯方式和解釋方式的根本區別在什麼地方

編譯方法可以生成目標代碼 解釋方法不能

㈥ 如何編譯C文件

編譯C文件用GCC。
編譯C文件常用方法:
單個文件:
g++
file.cpp
這是最簡單形式,預設輸出為a.out,可以用-o命令指定輸出文件,比如g++
file.cpp
f.out
多個文件:
g++
-c
1.cpp
-o
1.o
g++
-c
2.cpp
-o
2.o
g++
1.o
2.o
-o
prog.out
鏈接成可執行文件:
一般用g++
-o
file
file.cpp
多個文件是g++
-o
file
file1.cpp
file2.cpp
...
編譯C++不是用GCC而是G++.
如果用GCC能編譯但不能鏈接.
多個文件:
1.編譯多個文件,但不連接:
g++
file1.cpp
file2.cpp
會生成兩個文件:file1.o,
file2.o
2.連接:
g++
-o
outFileName
file1.o
file2.o
會生成一個可執行文件:outFileName。
如果想,一步就完成編譯和連接,那麼:
g++
-o
outFileName
file1.cpp
file2.cpp
-o選項控制是否連接。

㈦ 「編譯方式」和「解釋方式」的區別

程序員編寫的程序現在一般都是用高級語言編寫的,如c/c++ 以及面向對象的visual 系列;這樣編寫的程序計算機是不能直接執行的,因為計算機只能執行二進製程序。因此要經過一個源程序代碼翻譯成二進制的過程。計算機並不能直接地接受和執行用高級語言編寫的源程序,源程序在輸入計算機時,通過「翻譯程序」翻譯成機器語言形式的目標程序,計算機才能識別和執行。這種「翻譯」通常有兩種方式,即編譯方式和解釋方式。

兩者的區別如下:
解釋方式:程序運行時,取一條指令,將其轉化為機器指令,再執行這條機器指令。這種方式每次運行程序時都要重新翻譯整個程序,效率較低,執行速度慢,如QB,不過現在很少再用這種低效的方式的設計語言了。
編譯方式:程序運行時之前,將程序的所有代碼編譯為機器代碼,再運行這個程序。然後每次執行的時候就可以直接執行這個翻譯好的二進制文件了,這樣的程序只需要翻譯一次,效率明顯要高很多,現在的大多數語言都是這種方式,網頁中的asp.net 採用的也是這種方式。

簡單的說,編譯就是全文翻譯,全部翻譯完才執行。解釋就相當於同聲翻譯,邊翻譯邊執行。

㈧ VB如何編譯

VB編譯方法:

編碼完成後,點擊文件——生成工程,即可。

VB是解釋性的編程語言,安裝的VB在寫好代碼了,以後 按F5也會自動處理的。

Visual Basic是一種由Microsoft公司開發的結構化的、模塊化的、面向對象的、包含協助開發環境的事件驅動為機制的可視化程序設計語言。從任何標准來說,VB都是世界上使用人數最多的語言——不管是盛贊VB的開發者還是抱怨VB的開發者的數量。它源自於BASIC編程語言。VB擁有圖形用戶界面(GUI)和快速應用程序開發(RAD)系統,可以輕易的使用DAO、RDO、ADO連接資料庫,或者輕松的創建ActiveX控制項。程序員可以輕松的使用VB提供的組件快速建立一個應用程序。

熱點內容
壓縮殼脫殼機 發布:2024-09-21 03:14:33 瀏覽:92
熱血街籃為什麼是伺服器維護中 發布:2024-09-21 03:08:19 瀏覽:937
喇叭怎麼配置功放 發布:2024-09-21 03:06:50 瀏覽:750
為什麼安卓的內存沒有蘋果的內存 發布:2024-09-21 03:06:50 瀏覽:230
swift解壓 發布:2024-09-21 02:31:47 瀏覽:703
移動中心怎麼配置安卓系統 發布:2024-09-21 02:27:16 瀏覽:605
安卓手機舊版app怎麼下載 發布:2024-09-21 02:12:35 瀏覽:798
方舟知道ip怎麼加入伺服器 發布:2024-09-21 02:12:14 瀏覽:790
像素工廠如何加入遠程伺服器 發布:2024-09-21 02:11:00 瀏覽:823
手機服務密碼怎麼獲取 發布:2024-09-21 02:10:55 瀏覽:252