开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 26659|回复: 21
收起左侧

[图文资料] 易语言连接器简单修改(有很多人不知道这个哦!)

[复制链接]
结帖率:46% (16/35)
发表于 2012-8-24 21:42:08 | 显示全部楼层 |阅读模式   内蒙古自治区赤峰市
先说一声:不喜勿喷
再说一声:如果你知道了,那你可以左上角按精易论坛的LOGO嘛
还得说一声:喷子勿扰

{:soso__6679067747834841049_3:}很多人都是用易语言写程序的,但是,大家大多把注意力放在代码的编写上哦!有木有人注意下易语言的编译器连接器呢?{:soso__10890016027824134745_3:}其实,易语言的编译器我还在研究,易语言的连接器已经差不多了哦!别看LINK.EXE才不到500KB(可能是我又换了新的LINK.EXE,不过不影响。。。我的易语言目录下已经被我几乎全部替换了,不过还能编译。。。。。完美运行。。。。。),但是表要以貌取程序哦!Link.exe可是程序小鬼大!
Link.exe能够干啥呢?{:soso__4665273137382164995_1:}很多用易语言写程序的童鞋可能不知道吧,用C++/C.NET/VB的都不一定知道,但是C和ASMer肯定知道的。不过,还是复制一下度娘(度娘V5啊):
 链接器(Linker)是一个程序,将一个或多个由编译器汇编器生成的目标文件外加库链接为一个可执行文件
  目标文件是包括机器码和链接器可用信息的程序模块。简单的讲,链接器的工作就是解析未定义的符号引用,将目标文件中的占位符替换为符号的地址。链接器还要完成程序中各目标文件的地址空间的组织,这可能涉及重定位工作。
PS:有想研究编译器的童鞋,请研究yacc和lex,看看编译原理吧,我网盘里有哦!

在易语言里怎么对Link进行操作呢?哈哈,有木有童鞋看过易语言的目录?有过的童鞋自觉顶哦!
米错,易语言目录下有个VC98Linker文件夹,啊,不是,是Tools文件夹(VC98Linker是编译器存放文件夹。。。),眼睛不好的可以搜索。。。。。(见 图1)

图1

图1

,打开(话说我为了截图新安装了易语言,原来被我改的易语言已经乱死了。。。。)
打开后有木有发现link.ini?(见 图2)眼神不好的同上(没有的话。。。。你以前一定没编译过。。。。要不你建一个?)

图2

图2

打开link.ini(神马格式?Windows自带的文件编辑器即可,更高级的也行。。。),按Ctrl+F调出寻找窗口,输入 extra_args=
空格自己去掉,找到了木有?(见图3)

图3

图3

首先,把extra_args=前面的分号去掉!然后,可以填写连接器选项咯!编译选项?见附录哦!然后保存即可,下面是打了我的易语言增强补丁后link.ini内extra_args=的内容(图4):

图4

图4

然后完成。。。。。
{:soso__6649085972980209954_3:}


附录:
/A:size  排列区段位址,不可用於DOS程式 排列区段位址,不可用于DOS程式  
/B  抑制.lib或.obj路径错误提示 抑制.lib或.obj路径错误提示  
/CO  加入CodeView的符号及列号 加入CodeView的符号及列号  
/CP:number  设定程式最大空间(单位16B) 设定程式最大空间(单位16B)  
/DO  以预设值(DOSSEG)排列区段顺序 以预设值(DOSSEG)排列区段顺序  
/DS  载入资料至资料区段高位址 载入资料至资料区段高位址  
/E  压缩执行档,与/CO或/INC不容 压缩执行档,与/CO或/INC不容  
/F  使远程呼叫致能与/PAC并用 使远程呼叫致能与/PAC并用  
/HE  显示link.exe选译项 显示link.exe选译项  
/HI  执行时载入高记忆位址 执行时载入高记忆位址  
/INC  准备加入ILINK连结 准备加入ILINK连结  
/INF  显示连结过程的讯息 显示连结过程的讯息  
/LI  加入列号与结合位址至MAP程式 加入列号与结合位址至MAP程式  
/M  加入公用符号至MAP程式 加入公用符号至MAP程式  
/NOD[:library]  忽略指定程式库 忽略指定程式库  
/NOE  阻止LINK从程式库中搜寻扩充字 阻止LINK从程式库中搜寻扩充字  
/NOF  远程呼叫失效 远程呼叫失效  
/NOI  区别大小写字母 区别大小写字母  
/NOG  忽略群组的宣告,以便与古早版相容 忽略群组的宣告,以便与古早版相容  
/NOL  抑制LINK版权讯息 抑制LINK版权讯息  
/NON  与/DO同,但不加程式起始位元组 与/DO同,但不加程式起始位元组  
/NOP  不压缩邻近程式区段 不压缩邻近程式区段  
/OV  设定抑制插断 设定抑制插断  
/PACKC:number  压缩邻近程式区段 压缩邻近程式区段  
/PACKD:number  压缩邻近资料区段 压缩邻近资料区段  
/PAU  暂停以便更换磁片 暂停以便更换磁片  
/PM  指定Windows或OS/2程式型态 指定Windows或OS/2程式型态  
/Q  建立程式库给Quick语言 建立程式库给Quick语言  
/SE:number  设定连结时区段总数,预设为128 设定连结时区段总数,预设为128  
/ST:number  以此设定堆叠的大小(1~64KB) 以此设定堆叠的大小(1~64KB)  
/T  建立极小模式程式.COM(需设.model tiny) 建立极小模式程式.COM(需设.model tiny)  

用甜甜私房猫的表情开头和结尾(萌物有淫看!)
{:soso__12939574836897793298_1:}

重复:
一声:不喜勿喷
二声:如果你知道了,那你可以左上角按精易论坛的LOGO嘛
三声:喷子勿扰

转载注明原作者哦!著作权是俺的!

点评

优秀文章,!   广东省茂名市  发表于 2019-7-23 07:45

评分

参与人数 2精币 +2 收起 理由
miv + 1 楼主太逗了
微凉 + 1 感谢你的支持,精易有你更精彩

查看全部评分


结帖率:46% (16/35)
 楼主| 发表于 2012-8-24 21:42:33 | 显示全部楼层   内蒙古自治区赤峰市
自己的沙发自己做。。。。。。。不给别人添麻烦。。。。。。
有木有人帮我丰富下?
回复 支持 反对

使用道具 举报

结帖率:46% (16/35)
 楼主| 发表于 2012-8-24 21:45:00 | 显示全部楼层   内蒙古自治区赤峰市
板凳也是我的!
自己可以参照吴涛写的注释改造自己的易语言哦!提前做好备份。。。还有,贴上吴涛的版权说明:
    ★ 最终用户使用许可协议书

    请认真阅读本《最终用户许可协议》(以下简称《协议》)是您(个人或单一机构团体,以下简称用户)与大连大有吴涛易语言软件开发有限公司(以下简称公司)之间有关本软件产品的法律协议。本软件产品包括此计算机软件及相关所有文档。一旦您购买本软件,即表示您同意接受《协议》中的任何许可条款的约束。如果您不同意接受《协议》中的许可条款,则您不能使用本软件。

    一、许可使用:
    如果采用硬盘注册方式购买,则仅授权在注册硬盘当前所处单一计算机上使用。如果采用加密狗方式购买,则仅授权在加密狗当前所处单一计算机上使用。

    二、禁止使用:
    不得反向工程、反汇编、反编译、修改本软件和本软件及其附属文件的任何部分,不得将所获得的加密狗或注册钥匙文件提供给破J者用作破J本软件。

    三、软件的替换、修改和升级
    公司保留在任何时候通过为您提供本软件的替换或修改版本使本软件升级的权利和为这类替换、修改或升级收取费用的权利。公司提供给您的本软件的任何替换或修改、升级版本,将被视为本软件的一部分并且受到本协议条款的制约(除非本协议被随本软件的替换或修改、升级版本的另外一份协议取代)。

    四、权利的保留:
    未明示授予的一切其它权利均为公司所有。

    五、售后担保:
    公司担保,在正常使用的情况下,自售出之日起九十天内,其软件载体无材料或工艺缺陷。经验证确有缺陷时,公司的全部责任就是退换其软件载体,也是给您的唯一补偿。因事故、滥用或错误应用导致的载体缺陷,售后担保无效。退换的载体享受原担保期剩余时间,或三十天的担保;取其长者优先。除上述之外,本软件不享受任何其他形式的售后担保。

    六、责任限度:
    在适用法律所允许的最大范围内,公司及其供应商在任何情况下绝不就因使用或不能使用本软件产品或就未提供支持服务所发生的任何特殊、意外、非直接或间接的损害负赔偿责任,即使事先被告知该损害发生的可能性,也无济于事。不论任何情况,公司依本《协议》任何条款所负的全部责任限于您就购买本软件产品所实际已付的价款。

    七、许可终止:
    如您未遵守本协议的各项条款和条件,公司可终止本协议。终止协议时,您必须立即销毁本软件的所有复制品,并将购买本软件时公司所提供的注册钥匙文件或加密狗归还给公司。

    八、适用和管辖法律:
    《中华人民共和国著作权法》、《中华人民共和国计算机软件保护条例》、《中华人民共和国商标法》、《中华人民共和国专利法》等。
    本协议和上述有限保证及责任限制受中华人民共和国法律管辖。

    至此,您肯定已经详细阅读并已理解本协议,并同意严格遵守各条款和条件。

——————————————————————————————————————————————
注意看 二/禁止使用 那项
回复 支持 反对

使用道具 举报

结帖率:46% (16/35)
 楼主| 发表于 2012-8-24 21:52:47 | 显示全部楼层   内蒙古自治区赤峰市
发现一个很简单的东西被我扯了这么多,小水怡情。。。。。
选项
用途

@
指定响应文件

/ALIGN
指定每一节的对齐方式

/ALLOWBIND
指定 DLL 不能绑定

/ALLOWISOLATION
指定清单查找的行为。

/ASSEMBLYDEBUG
将 DebuggableAttribute 添加到托管映像中。

/ASSEMBLYLINKRESOURCE
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n
创建指向托管资源的链接。

/ASSEMBLYMODULE
指定应将 Microsoft 中间语言 (MSIL) 模块导入到程序集中

/ASSEMBLYRESOURCE
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n
将托管资源文件嵌入到程序集

/BASE
为程序设置基址

/CLRIMAGETYPE
设置 CLR 映像的类型(IJW 映像、纯映像或安全映像)。

/CLRSUPPORTLASTERROR
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n
保留通过 P/Invoke 机制调用的函数的上一个错误代码。

/CLRTHREADATTRIBUTE
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n
指定要应用于 CLR 程序入口点的线程属性。

/CLRUNMANAGEDCODECHECK
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n
/CLRUNMANAGEDCODECHECK 指定链接器是否将 SuppressUnmanagedCodeSecurity 属性应用于链接器生成的、从托管代码调用到本机 DLL 中的 PInvoke 存根 (stub)。
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n

/DEBUG
创建调试信息

/DEF
将模块定义 (.def) 文件传递到链接器

/DEFAULTLIB
在解析外部引用时搜索指定的库

/DELAY
控制 DLL 的延迟加载

/DELAYLOAD
导致延迟加载指定的 DLL

/DELAYSIGN
对程序集进行部分签名。

/DLL
生成 DLL

/DRIVER
创建 Windows NT 核心模式驱动程序

/DYNAMICBASE
使用 Windows Vista 的地址空间布局随机化 (ASLR) 功能,指定是否生成可在加载时随机重新设定基址的可执行文件映像。

/ENTRY
设置起始地址

/errorReport
向 Microsoft 报告内部链接器错误。

/EXPORT
导出函数

/FIXED
创建只能在其首选基址加载的程序

/FORCE
强制完成链接,即使符号无法解析或已定义多次

/FUNCTIONPADMIN
创建可热修补的映像。

/HEAP
设置堆的大小(以字节为单位)

/IDLOUT
指定 .idl 文件和其他 MIDL 输出文件的名称

/IGNOREIDL
防止将属性信息处理到 .idl 文件中

/IMPLIB
重写默认的导入库名

/INCLUDE
强制符号引用

/INCREMENTAL
控制增量链接

/KEYCONTAINER
指定用来为程序集签名的密钥容器。

/KEYFILE
指定用来为程序集签名的密钥或密钥对。

/LARGEADDRESSAWARE
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n
通知编译器应用程序支持大于 2 GB 的地址

/LIBPATH
允许用户重写环境库路径

/LTCG
指定链接时代码生成

/MACHINE
指定目标平台

/MANIFEST
创建并行清单文件。

/MANIFESTDEPENDENCY
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n
在清单文件中指定 <dependentAssembly> 节。

/MANIFESTFILE(命名清单文件)
更改清单文件的默认名称。

/MANIFESTUAC
指定是否将用户帐户控制 (UAC) 信息嵌入到程序清单中。

/MAP
创建映射文件

/MAPINFO
包括映射文件中的指定信息

/MERGE
合并节

/MIDL
指定 MIDL 命令行选项

/NOASSEMBLY
取消创建 .NET Framework 程序集

/NODEFAULTLIB
在解析外部引用时忽略所有(或指定的)默认库

/NOENTRY
创建纯资源 DLL

/NOLOGO
取消显示启动版权标志

/NXCOMPAT
将可执行文件标记为经测试与 Windows 数据执行保护功能兼容。

/OPT
控制 LINK 优化

/ORDER
按预先确定的顺序将 COMDAT 放置到图像中

/OUT
指定输出文件名

/PDB
创建程序数据库 (PDB) 文件

/PDBSTRIPPED
创建没有私有符号的程序数据库 (PDB) 文件

/PGD
为按配置文件优化指定 .pgd 文件。

/PROFILE
生成一个可与“性能工具”探查器结合使用的输出文件。

/RELEASE
在 .exe 文件头中设置校验和

/SAFESEH
指定图像将包含安全异常处理程序表。

/SECTION
重写节的属性

/STACK
设置堆栈的大小(以字节为单位)

/STUB
将 MS-DOS 存根 (stub) 程序附加到 Win32 程序

/SUBSYSTEM
通知操作系统如何运行 .exe 文件

/SWAPRUN
通知操作系统在运行链接器输出之前将其复制到一个交换文件

/TLBID
允许指定链接器生成的类型库的资源 ID

/TLBOUT
指定 .tlb 文件和其他 MIDL 输出文件的名称

/TSAWARE
创建专为在终端服务器下运行而设计的应用程序

/VERBOSE
打印链接器进度消息

/VERSION
分配版本号

/WX
将链接器警告视为错误。

回复 支持 反对

使用道具 举报

结帖率:100% (5/5)
发表于 2012-8-25 19:45:36 | 显示全部楼层   湖南省湘潭市
{:soso__10165175446970529289_1:}支持一下~
回复 支持 反对

使用道具 举报

结帖率:75% (6/8)
发表于 2012-8-25 19:48:04 | 显示全部楼层   广东省湛江市
虽然看不懂,但也要支持
回复 支持 反对

使用道具 举报

结帖率:46% (16/35)
 楼主| 发表于 2012-8-25 19:49:07 | 显示全部楼层   内蒙古自治区赤峰市
挽尊大队何在!快快现身啊!
回复 支持 反对

使用道具 举报

发表于 2012-8-25 19:50:18 | 显示全部楼层   江苏省无锡市
虽然不懂,但看起来好像很厉害的样子
回复 支持 反对

使用道具 举报

签到天数: 22 天

发表于 2012-8-25 19:50:29 | 显示全部楼层   天津市天津市
修改后有什么用?
回复 支持 反对

使用道具 举报

结帖率:46% (16/35)
 楼主| 发表于 2012-8-31 06:41:23 | 显示全部楼层   内蒙古自治区赤峰市
是啊,现在人们连代码都没写好,谁会来看更深一层的编译器/连接器呢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表