前言
顾名思义,本工具的作用就是通过命令行来编译易语言源码。
但也并非是独立的编译器,依然需要依赖易语言程序,只是不会显示易语言IDE窗口。从打开源码到完成编译,包括处理各种错误都由命令行工具自动完成。
有了这个命令行工具就可以实现全自动化构建和部署。
此工具目前处于测试阶段,有任何问题和建议的话,欢迎反馈!
注意:此工具并不会绕过易语言正版检测,需要使用正版易语言才能完成编译。
命令行说明
set epath "EPATH"
设置默认易语言路径
如: 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",可空,默认生成到源码所在目录,文件名与源码相同
-epath 指定易语言路径,若不指定易语言路径,则使用默认易语言或自动寻找
如: 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 静态编译
-d 独立编译
-p 编译易包
-pwd 源码密码
-lib 启用的支持库文件名,不要加后缀.fne,多个支持库用;分号分隔
如: -lib "BlackMoon;spec"
-e_xxx 指定易语言link.ini配置项的内容,xxx代表配置项名(但不会实际地修改该文件,只是用来告知易语言)
如:-e_linker "\VC98linker\Bin"
-k 执行完毕后,此命令行工具不会立即退出
-show 显示易语言窗口
-st 启用易语言超时,单位秒,默认5分钟
-ct 编译超时,单位秒,默认10分钟
如: -ct 600
下面是易语言的系统配置:
-FastArry 开启快速数组访问方式(不开启为-FastArry-,默认不开启)
-CheckDllStack 开启调用DLL命令后检查堆栈错误(不开启为-CheckDllStack-,默认开启)
-CheckLoop 开启死循环代码检查(不开启为-CheckLoop-,默认开启)
-Windows6.0 使用Windows通用组件库6.0版(不使用为-Windows6.0-,默认不使用)
-OutLib 非独立编译后写出相关库(不写出为-OutLib-,默认不写出)
-CheckName 开启严格的重复名称检查(不开启为-CheckName-,默认不开启)
-JunkLevel 花指令级别,默认0不插花,最大值为3
如:-JunkLevel 3
-Upset 编译结果打乱码,默认0不打乱,随机打乱为0xFFFFFFFF
如:-Upset 0xFFFFFFFF
示例1(普通编译):
ecl.exe make "C:\test.e"
示例2(指定易语言路径进行静态编译):
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 "默认配置"
示例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的内容可以为:make "C:\text.e"
test.txt中的不同参数间可以用换行符分隔
错误代码列表:
#define ECL_ERROR_SUCCESS 1 //处理成功
#define ECL_ERROR_OK 0 //未发生错误
#define ECL_ERROR_UNKNOW -1 //未定义类型的错误
#define ECL_ERROR_PARAM -2 //命令行有错误
#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 //无法识别或无法运行的易语言程序
#define ECL_ERROR_CANNOTGETMENU -8 //无法获取易语言菜单
#define ECL_ERROR_SHUTDOWN -9 //易语言意外结束
#define ECL_ERROR_STATIC -10 //静态编译失败
#define ECL_ERROR_MAKELINKINI -11 //生成link.ini文件过程中出错
#define ECL_ERROR_BMINFO -12 //老版黑月的相关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 //启动易语言超时
#define ECL_ERROR_COMPILETIMEOUT -18 //编译超时
#define ECL_ERROR_NOTSUPPORTEPK -19 //不支持易包编译
这里的资源很不错