易語言命令行編譯工具,本工具的作用就是通過命令行來編譯易語言源碼,但也并非是獨(dú)立的編譯器,依然需要依賴易語言程序,只是不會顯示易語言IDE窗口,從打開源碼到完成編譯,包括處理各種錯(cuò)誤都由命令行工具自動完成,有了這個(gè)命令行工具就可以實(shí)現(xiàn)全自動化構(gòu)建和部署。
使用說明
命令行說明
set epath "EPATH"
設(shè)置默認(rèn)易語言路徑
如: ecl.exe set epath "C:\Program Files (x86)\e\e.exe"
make Source [Target] [-epath path] [-bm|-bmX|-s|-d] [-b*Fg config] [-bmdes description] [-p password] [...]
編譯源碼
Source 源碼全路徑,如:"C:\test.e"
Target 保存文件,如:"C:\Release\test.exe",可空,默認(rèn)生成到源碼所在目錄,文件名與源碼相同
-epath 指定易語言路徑,若不指定易語言路徑,則使用默認(rèn)易語言或自動尋找
如: ecl.exe make "C:\test.e" -epath "C:\Program Files (x86)\e\e.exe" -s
-bm 黑月編譯:
-b*Fg 配置名稱,可空,黑月4.0版本以上才有效
-bmdes 特定備注,可空,黑月4.0版本以上才有效
-bm0 黑月匯編模式編譯(黑月3.8及版本以下才有效,否則按-bm處理)
-bm1 黑月C++模式編譯(黑月3.8及版本以下才有效,否則按-bm處理)
-bm2 黑月MFC模式編譯(黑月3.8及版本以下才有效,否則按-bm處理)
-s 靜態(tài)編譯
-d 獨(dú)立編譯
-p 編譯易包
-pwd 源碼密碼
-lib 啟用的支持庫文件名,不要加后綴.fne,多個(gè)支持庫用;分號分隔
如: -lib "BlackMoon;spec"
-e_xxx 指定易語言link.ini配置項(xiàng)的內(nèi)容,xxx代表配置項(xiàng)名(但不會實(shí)際地修改該文件,只是用來告知易語言)
如:-e_linker "\VC98linker\Bin"
-k 執(zhí)行完畢后,此命令行工具不會立即退出
-show 顯示易語言窗口
-st 啟用易語言超時(shí),單位秒,默認(rèn)5分鐘
-ct 編譯超時(shí),單位秒,默認(rèn)10分鐘
如: -ct 600
下面是易語言的系統(tǒng)配置:
-FastArry 開啟快速數(shù)組訪問方式(不開啟為-FastArry-,默認(rèn)不開啟)
-CheckDllStack 開啟調(diào)用DLL命令后檢查堆棧錯(cuò)誤(不開啟為-CheckDllStack-,默認(rèn)開啟)
-CheckLoop 開啟死循環(huán)代碼檢查(不開啟為-CheckLoop-,默認(rèn)開啟)
-Windows6.0 使用Windows通用組件庫6.0版(不使用為-Windows6.0-,默認(rèn)不使用)
-OutLib 非獨(dú)立編譯后寫出相關(guān)庫(不寫出為-OutLib-,默認(rèn)不寫出)
-CheckName 開啟嚴(yán)格的重復(fù)名稱檢查(不開啟為-CheckName-,默認(rèn)不開啟)
-JunkLevel 花指令級別,默認(rèn)0不插花,最大值為3
如:-JunkLevel 3
-Upset 編譯結(jié)果打亂碼,默認(rèn)0不打亂,隨機(jī)打亂為0xFFFFFFFF
如:-Upset 0xFFFFFFFF
示例1(普通編譯):
ecl.exe make "C:\test.e"
示例2(指定易語言路徑進(jìn)行靜態(tài)編譯):
ecl.exe make "C:\test.e" -epath "C:\Program Files (x86)\e\e.exe" -s
示例3(使用黑月編譯并指定配置名稱):
ecl.exe make "C:\test.e" -bm -b*Fg "默認(rèn)配置"
示例4(編譯帶密碼的源碼):
ecl.exe make "C:\test.e" -pwd "The Password"
示例5(編譯文件保存到C:\test.exe):
ecl.exe make "C:\test.e" "C:\test.exe"
@文件路徑 從文件中指定命令行
如:ecl.exe @test.txt
test.txt的內(nèi)容可以為:make "C:\text.e"
test.txt中的不同參數(shù)間可以用換行符分隔
錯(cuò)誤代碼列表:
#define ECL_ERROR_SUCCESS 1 //處理成功
#define ECL_ERROR_OK 0 //未發(fā)生錯(cuò)誤
#define ECL_ERROR_UNKNOW -1 //未定義類型的錯(cuò)誤
#define ECL_ERROR_PARAM -2 //命令行有錯(cuò)誤
#define ECL_ERROR_FILENOTFOUND -3 //找不到文件
#define ECL_ERROR_FILEINVALID -4 //文件無效
#define ECL_ERROR_COMPILE -5 //編譯失敗
#define ECL_ERROR_INVALIDCOMPILETYPE -6 //不支持的編譯類型
#define ECL_ERROR_ECANNOTSTART -7 //無法識別或無法運(yùn)行的易語言程序
#define ECL_ERROR_CANNOTGETMENU -8 //無法獲取易語言菜單
#define ECL_ERROR_SHUTDOWN -9 //易語言意外結(jié)束
#define ECL_ERROR_STATIC -10 //靜態(tài)編譯失敗
#define ECL_ERROR_MAKELINKINI -11 //生成link.ini文件過程中出錯(cuò)
#define ECL_ERROR_BMINFO -12 //老版黑月的相關(guān)xx無法定位
#define ECL_ERROR_BMCOMPILE -13 //黑月編譯失敗
#define ECL_ERROR_PASSWORD -14 //源碼密碼不正確
#define ECL_ERROR_EC -15 //缺乏易模塊
#define ECL_ERROR_ELIB -16 //缺少支持庫
#define ECL_ERROR_STARTTIMEOUT -17 //啟動易語言超時(shí)
#define ECL_ERROR_COMPILETIMEOUT -18 //編譯超時(shí)
#define ECL_ERROR_NOTSUPPORTEPK -19 //不支持易包編譯
注意事項(xiàng)
此工具目前處于測試階段,有任何問題和建議的話,歡迎反饋!
注意:此工具并不會繞過易語言正版檢測,需要使用正版易語言才能完成編譯。