編譯 Ares Galaxy 的過程

2021-04-14 15:48:33 字數 1375 閱讀 9313

首先就是回到俺以前的delphi7上,要不是2006所帶的重構工具和ide實在太誘人,俺還是覺得delphi7的介面友好,大概是習慣的緣故吧。

下面開始漫漫的安裝控制項的歷程。

開始編譯,上來就報少了什麼屬性。webbrower,這不是delphi自帶的控制項嘛。先cancel再說,編譯少shdocvw_tlb單元。這是啥東西?去ares的help上sos一下。翻了n頁,都到2023年了。大概是倒數第二個問題就是關於compiler錯誤的。裡面有關於這部分的介紹.

。還有關於jedi.inc的錯誤的。好多高階的delphi控制項裡都有inc這東西,大概了解了一下。明天再研究吧。今天先搞定這個。一併解決了倆錯誤。看來看看help就是有好處啊。可惜太累了。雜不弄個faq那。

再開啟工程,不報錯誤了,竊喜一下~~.編譯還是失敗~~~~。出來了一堆錯誤(這會也記不清是什麼了~)。大概是函式引數型別不對,某某函式沒有一類的吧。估計是delphi的控制項常見錯誤,新控制項公升級後把以前的老函式刪掉或者變形了。找找老版本的吧。一般這種有名的控制項包網上肯定有老版的。google了一下,看來tnt也是個常見控制項,網上一大堆,在「問友原始碼」下了兩個,用了乙個感覺還是不行,也不記得怎麼不行了。又下了個,這是**

再次編譯,依然失敗之~~~~乙個是wideinputquery函式的型別不對,乙個是缺少tnt_removedirectoryw函式。再次google。找到了老版本tnt**,tnt_removedirectoryw函式,手工新增上去吧。

function tnt_removedirectoryw(lppathname: pwidechar): bool; 

begin 

if win32platformisunicode then 

result := removedirectoryw(pwidechar(lppathname)) 

else 

result := removedirectorya(pansichar(ansistring(lppathname))); 

end;

wideinputquery實在找不到,看一下。估計前兩個引數是計算位置的。乾脆遮蔽掉,不影響大局。   

編譯成功~~~~

另外需要注意的一點就是delphi7的編譯進度預設是不開啟的,在這個程式中有乙個helper_supernode_crypt單元,警告大概有3,4千個,編譯時還以為delphi當了。騙的我重啟了幾次delphi。後來開啟進度一看,原來是警告過多的緣故,後來乾脆

加了句,遮蔽掉了。編譯速度大大加快。

編譯的過程

編譯的概念 編譯程式讀取源程式 字元流 對之進行詞法和語法的分析,將高階語言指令轉換為功能等效的彙編 再由匯程式設計序轉換為機器語言,並且按照作業系統對可執行檔案格式的要求鏈結生成可執行程式。編譯的完整過程 c源程式 預編譯處理 c 編譯 優化程式 s asm 匯程式設計序 obj o a ko 鏈...

編譯原理 編譯的過程

預處理 prepressing 展開巨集定義 處理 define,include 刪除注釋,新增行號和檔名標識。生成.i 預處理檔案 編譯 compilation 詞法分析 語法分析 語義分析 優化。預處理 編譯用ccl完成。生成.s 彙編 檔案 彙編 assembly 把彙編 轉成機器可執行的指令...

qmeu的編譯過程

在qmeu中,將qmeu 本身所執行的平台稱為 host,模擬的平台稱target,而將target code 轉為 host code 的過程稱為code generation。但因為qemu 是在動態執行中將target code 轉為 host code,所以多加了乙個dynammic來形容。...