當前位置:首頁 » 編程軟體 » ec怎麼編譯為可執行文件

ec怎麼編譯為可執行文件

發布時間: 2022-07-17 08:42:12

『壹』 易語言中可以把*.e的文件編譯成*.ec格式的文件嗎如果可以,要怎麼做

通常來說不可以 ,
但是有一個特例。
當*.e的代碼是模塊的時候,用易語言打開,靜態編譯出來就是*.ec了。
這是因為易語言無論是編寫什麼保存的源代碼都是*.e,所以編寫模塊的時候保存的代碼也是*.e,這樣就能通過源代碼編譯出模塊(*.ec)

『貳』 如何編譯ec文件

ftp傳到伺服器上 用gcc

『叄』 我有一段JAVA程序想用Eclipse運行,但是不知道怎麼用EC,請問怎麼用EC把程序運行出來

在EC裡面建一個JAVA項目,然後在左邊的框裡面出現你剛剛建的項目

接著,右鍵點這個項目,再建一個CLASS,然後在這個CLASS裡面寫上你的程序,注意CLASS名要和文件名一樣

程序寫完後,右鍵點程序那頁的空白處,有個RUN AS

在RUN AS裡面選擇 RUN Application

或者在最上面的工具欄中也有RUN選項,操作同上

不知道你環境配了沒有!

『肆』 易語言 .ec 模塊文件怎麼編輯或是復制出來自己重新編輯

現在大型軟體項目的實施一般是分工協作開發,即分成一個個的模塊來進行開發,易語言提供了模塊化開發支持。易語言中的模塊稱為易模塊。通過使用易模塊,用戶可以將常用的代碼封裝起來重復使用到其它程序,或提供給第三方使用,或用作開發大型軟體項目中的某個部分,然後在軟體項目的封裝階段將所有這些模塊組織編譯成為一個完整程序。1.易模塊同API函數的使用比較。在易語言中,API函數是外部語言編譯封裝好的介面函數,而易模塊是易語言編譯好的專用的外部介面函數文件;易模塊的使用方法是直接把該模塊程序插入易程序中,再調用它的介面命令,API函數的使用方法是先把該DLL文件放到相關目錄下,再建立DLL命令來調用;易模塊是用中文編寫的,而API函數使用英文編寫的。只要熟悉易語言就可以用中文編寫易模塊,因此易語言更適合於中國人學習開發。 2.易模塊的特點易模塊是一個特殊的易程序,它與普通的易程序相比,有以下特點:(1)必須具有程序名稱(通過「程序」→「配置」菜單設置),此名稱代表模塊名稱;(2)必須具有名為「_啟動子程序」的子程序,此子程序負責進行易模塊的初始化;(3)必須具有公開此易模塊的對外介面。 只有具有以上三點的程序才能夠被稱為易模塊。

『伍』 請問有了易語言源碼怎樣編譯成軟體exe

bak是易語言備份文件,把bak後綴改成e就可以用易語言打開,


易語言下載:http://180.97.83.171:443/down/-347461879/Easy.language.5.11.rar?cts=&ctp=14A145A240A157&ctt=1435130085&limit=3&spd=5000000&ctk=&chk=-347461879

『陸』 C文件如何成為可執行文件(編譯、鏈接、執行)——摘自《程序員的自我修養》

本文算是我閱讀《程序員的自我修養》(俞甲子等著)相關章節的筆記,文中直接引用了原書中的敘述,強烈建議大家去看原書,本文只做概要介紹而用。——註:文中有很多引用圖的地方,請大家自己去找原書看,支持正版!我遇到一個問題,Linux C編程中的問題:.. char *p; unsigned int i = 0xcccccccc; unsigned int j; p = (char *) &i; printf("%.2x %.2x %.2x %.2x\n", *p, p[1], p[2], p[3]); memcpy(&j, p, sizeof(unsigned int)); printf("%x\n", j); ... Output: ffffffcc ffffffcc ffffffcc ffffffcc 0xcccccccc My questions are: 1. Why it prints "ffffffcc ffffffcc ffffffcc ffffffcc"? (if p is unsigned char* then it will print correctly "cc cc cc cc") 2. Why pointer to char p copied to j correctly, why not every member in p overflow? since it is a signed char. 這是別人在郵件列表中提出的問題,在試圖回答這個問題的過程中,突然發現,自己對連接器的工作並不熟悉,因此拿來好書《程序員的自我修養》來看,並做如下匯報,強烈推薦《程序員的自我修養》!!!寫好的C語言文件,最終能夠執行,大致要經過預處理、編譯、匯編、鏈接、裝載五個過程。預編譯完成的工作: (1)將所有的"#define"刪除,並展開所有的宏定義 (2)處理所有條件預編譯指令 (3)處理#include預編譯指令,將被包含的文件插入到預編譯指令的位置,這個過程是遞歸進行的。 (4)刪除所有的注釋 (5)添加行號和文件名標識,以便調試 (6)保留所有的#pragma編譯器命令,因為編譯器需要使用它們。編譯完成的工作: (1)詞法分析 掃描源代碼序列,並將其分割為一系列的記號(Token)。 (2)語法分析 用語法分析器生成語法樹,確定運算符號的優先順序和含義、報告語法錯誤。 (3)語義分析 靜態語義分析包括生命和類型的匹配,類型的轉換;動態語義分析一般是在運行期出現的與語義相關性的問題,如除0錯。 (4)源代碼生成 源代碼級優化器在源代碼級別進行優化:如將如(6+2)之類的表達式,直接優化為(8)等等。將語法書轉換為中間代碼,如三地址碼、P-代碼等。 (5)代碼生成 將源代碼轉換為目標代碼,依賴於目標機器。 (6)目標代碼優化匯編完成的工作: 將匯編代碼變成機器可以執行的指令鏈接完成的工作: 鏈接完成的工作主要是將各個模塊之間相互引用的部分處理好,使得各個模塊之間正確銜接。鏈接過程包括:地址和空間分配、符號決議和重定位。 首先講靜態鏈接,基本的靜態鏈接如下: 我們可能在main函數中調用到定義在另一個文件中的函數foo(),但是由於每個模塊式單獨編譯的,因此main並不知道foo的地址,所以它暫時把這些調用foo的指令的目標地址擱置,等到最後鏈接的時候讓連接器去修正這些地址(重定位),這就是靜態鏈接最基本的過程和作用;對於定義在其他文件中的變數,也存在相同的問題。具體過程如下: (1)空間和地址分配 1)空間與地址分配:掃描所有輸入目標文件,獲得各個段的屬性、長度和位置,並且將目標文件中的符號表中所有的符號定義和符號引用收集起來,放到一個全局符號表中。 2)符號解析和重定位:使用第一步收集到的信息,讀取輸入文件中段的數據、重定位信息,並進行符號解析與重定位、調整代碼中的地址等。 動態鏈接的過程更為復雜,但是完成的工作類似。 動態鏈接的初衷是為了解決空間浪費和更新困難的問題,把鏈接過程推遲到運行時進行 首先介紹一個重要的概念——地址無關代碼。為了解決固定裝載地址沖突的問題,我們希望對所有絕對地址的引用不作重定位,而把這一步推遲到裝載的時候再完成,一旦模塊裝載地址確定,即目標地址確定,那麼系統對程序中所有的絕對地址引用進行重定位。同時我們希望,模塊中共享的指令部分在裝載時不需要因為裝載地址的改變而改變,所以把指令中那些需要被修改的部分分離出來,跟數據放在一起,這樣指令部分就可以保持不變,而數據部分可以在每個進程中擁有一個副本,這種方案目前被稱為地址無關代碼(PIC,Position-independent Code)。 我們需要解決如下四種引用中的重定位問題: 1)模塊內部調用或者跳轉:這個可以用相對地址調用或者基於寄存器的相對調用,所以不需要重定位2)模塊內部數據的訪問:用相對定址的方法,不過鏈接器實現得十分巧妙: call494 <__i686.get_pc_thunk.cx> add$0x188c, %ecx mov$0x1, 0x28(%ecx) //a=1 調用一個叫做__i686.get_pc_thunk.cx的函數,把call的下一條指令的地址放到ecx寄存器中,接著執行一條mov指令和一個add指令3)模塊間數據的訪問:在數據段里建立一個指向全局變數的指針數組,也成全局便宜表(GOT),當要引用全局變數時,可以通過GOT相對應的項間接引用: GOT是做到指令無關的重要的一環:在編譯時可以確定GOT相對於當前指令的偏移,根據變數地址在GOT中的偏移就可以得到變數的地址,當然GOT中哪個每個地址對應於哪個變數是由編譯器決定的。4)模塊間的調用、跳轉:採用上面類似的方法,不同的是GOT中相應的項存儲的是目標函數的地址,當模塊需要調用目標函數時,可以通過GOT中的項進行間接跳轉。 地址無關代碼小結: 現在,來看動態鏈接中的另一個重要問題——延遲綁定(PLT)。當函數第一次被用到時才進行綁定,否則不綁定。PLT為了實現延遲綁定,增加了一層間接跳轉。調用函數並不是通過GOT跳轉的,而是通過一個叫PLT項的結構進行跳轉的,每個外部函數在PLT中都有對應的項,如函數bar,其在PLT對應的項的地址記為bar@plt,實現方式如下: bar@plt: jmp* (bar@GOT) pushn pushmoleID jump_dl_runtime_resolve 鏈接器的這個實現至為巧妙: 如果在連接器初始化階段,已經正確的初始化了bar@GOT,那麼這個跳轉指令的結果正是我們所期望的,但是,為了實現PLT,一般在連接器初始化時,將"pushn"的地址放入到bar@GOT中,這樣就直接跳轉到第二條指令,相當於沒有進行任何操作。第二條指令「pushn」,n是bar這個符號引用在重定位表「.rel.plt」中的下標。接著將模塊的ID壓棧,跳轉到_dl_runtime_resolve完成符號解析和重定位工作,然後將bar的地址填入到bar@GOT中。下次再調用到bar時,則bar@GOT中存儲的是一個正確的地址,這樣就完成了整個過程。 在鏈接完成之後,就生成了你要的可執行文件了,如ELF文件,至於這個文件的詳細的信息,可以參考相關的文檔。 現在,你要運行你的可執行文件,這是如何做到的呢? 我們從操作系統的角度來看可執行文件的裝載過程。操作系統主要做如下三件事情:(1)創建一個獨立的虛擬地址空間,但由於採用了COW機制,這里只是復制了父進程的頁目錄和頁表,甚至不設置映射關系(參考操作系統相關書籍)。(2)讀取可執行文件頭,並且建立虛擬空間與可執行文件的映射關系。(3)將CPU的指令寄存器設置成可執行文件的入口地址,啟動運行。我們來看一下執行過程中,進程虛擬空間的分布。 首先我們來區分Section和Segment,都可以翻譯為「段」,那麼有什麼不同呢?從鏈接的角度來講,elf文件是按照Section存儲的,從裝載的角度講,elf文件是按照Segment存儲的。」Segment」實際上是從裝載的角度重新劃分了ELF的各個段,將其中屬性相似的Section合並為一個Segment,而系統是按照Segment來映射可執行文件的。

『柒』 怎麼讓exe文件從新變成ec的易語言文件然後修改編輯

那你必須要學會反編譯,想直接用一個程序編輯,那是很愚蠢的事

『捌』 朋友給了幾個後綴ec的文件,我怎麼做成exe

  • 這個是易語言文件樓主下載個易語言編輯工具 或者 用其他的程序編譯工具打開

『玖』 易語言.ec文件如何運行

.ec 易語言模塊

打開易語言 在左邊-程序 模塊引用表 右鍵-添加模塊引用

『拾』 請教易語言模塊如何編譯成程序

*.e文件是易語言的源代碼文件,該文件中保存了易語言所設計的程序的所有源代碼。無論是*.ec的模塊文件還是*.exe的可執行文件都是通過*.e文件編譯而來的.
如果編譯源代碼文件(也就是*.e的文件)後,生成的是*.ec的文件,那麼說明這份源代碼是一個易語言模塊的源代碼,它只能被編譯為*.ec的易語言模塊文件。
要生成exe的可執行文件,需要在新建易語言程序項目時選擇「Windows窗口程序」類型,該類型的項目可以編譯為exe文件。
另:如何建立「Windows窗口程序」項目?啟動易語言後在彈出的「新建...」窗口中選擇即可。

熱點內容
電腦開機後一直在配置更新怎麼進入系統 發布:2025-02-07 18:17:43 瀏覽:10
新浪上傳視頻在哪 發布:2025-02-07 18:17:38 瀏覽:556
外匯點差演算法 發布:2025-02-07 18:16:41 瀏覽:78
我的世界各種伺服器核心的區別 發布:2025-02-07 18:15:52 瀏覽:677
雲伺服器客戶怎麼轉 發布:2025-02-07 18:13:19 瀏覽:205
什麼漫畫軟體可以緩存 發布:2025-02-07 17:56:21 瀏覽:268
安卓如何取消手機搜索 發布:2025-02-07 17:46:04 瀏覽:217
ontoucheventandroid 發布:2025-02-07 17:45:50 瀏覽:869
愛思助手如何看配置 發布:2025-02-07 17:32:27 瀏覽:175
自己的電腦怎麼搭建手游伺服器端 發布:2025-02-07 17:21:44 瀏覽:47