Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 17609|回复: 23

利用IDE扩展来给Lazarus编译后的执行文件减肥

[复制链接]

该用户从未签到

发表于 2009-10-9 13:53:52 | 显示全部楼层 |阅读模式
Lazarus编译出来的程序个头太大,直接发布显然不合适,减肥的办法就是通过strip去掉调试信息,然后用upx进行压缩,这两个工具被放置在\lazarus\fpc\2.3.1\bin\i386-win32目录下,可以编写一个批处理来进行操作,如:

建立一个批处理文件 reduce.bat
内容:
@echo off
strip --strip-all %1
upx %1
@echo on

使用方法,将reduce..bat/strip.exe/upx.exe 三个文件放到一起,然后运行reduce yourapp.exe 如果程序目录和reduce.bat文件不在一个目录,请加上路径,如:reduce c:\path\yourapp.exe (上面摘引自论坛原来的Lazarus执行文件减肥办法)

经过压缩后的文件会小很多,可就是操作起来比较麻烦,要是Lazarus编译程序以后就自动执行这两步操作,生成一个精干的执行文件,那该多好啊!开源的Lazarus给开发人员提供了足够的发挥空间,只要想的到,就一定做得到,下面我们就来实践一下。

目标,编写一个包,安装加载到Lazarus中,让程序编译后自动在可执行文件的目录下多生成一个Release目录,将减肥后的可执行文件放置其中。

1、在代码编辑器窗口添加一个工具条,在工具条上放一个按钮,点击按钮,压缩可执行文件。

动态生成工具条和按钮,设置工具条的parent为SourceEditorWindow即可在代码编辑器中出现工具条,当前工程的执行文件可通过LazarusIDE.ActiveProject.MainFile.Filename来获得。

下载代码:

安装IDE扩展包后的界面 :


2、上面的实验只是说明可能通过IDE扩展开进行可执行文件的压缩,代码很简陋,很多情况(更改安装路径,跨平台等)都没有考虑,还有如何捕获Lazarus编译完成事件,实现彻底的自动压缩,就请你也来实践一下吧。。。

小提示:LazarusIDE.ActiveProject.LazCompilerOptions可以找到编译设置,通过它找到环境配置文件,再通过解析这xml个文件,就可以获得工具strip和upx的具体路径。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册(注册审核可向QQ群索取)

x

评分

参与人数 1威望 +11 收起 理由
猫工 + 11 互相帮助,相互学习

查看全部评分

回复

使用道具 举报

该用户从未签到

发表于 2009-10-9 14:17:42 | 显示全部楼层
好文章,专业帮顶
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-11-3 10:07:36 | 显示全部楼层
楼主的精神让人称赞。我是一新手,昨天刚下载的Lazarus,巨大的EXE让人害怕,看到一篇文章,好象不需要这么麻烦。


运行Lazarus,点开“工程”->“编译选项”,在出现的对话框中点“链接”标签,将“当出现错误时显示行号”前面的对勾去掉,确定保存设置。按照上面的设置,重新编译一下工程文件,编译出来的程序文件就减小到1.7兆了。如果想继续压缩,那么就该使用UPX之类的压缩工具了。我用Lazarus自带的UPX压缩了一下,减小到了600多K,差不多可以接受了。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-11-3 18:05:00 | 显示全部楼层
用这个选项
dll只原来的1/3
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-12-1 14:02:07 | 显示全部楼层
还是大文件的呀.
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2010-3-4 10:53:32 | 显示全部楼层
此项作用巨大:
“工程”->“编译选项”,在出现的对话框中点“链接”标签,将“当出现错误时显示行号”前面的对勾去掉

另外可以使用KOL_CE
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2010-3-4 11:35:12 | 显示全部楼层
引用第5楼lvjack于2010-03-04 10:53发表的  :
此项作用巨大:
“工程”->“编译选项”,在出现的对话框中点“链接”标签,将“当出现错误时显示行号”前面的对勾去掉

另外可以使用KOL_CE

同意
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2010-3-4 11:35:11 | 显示全部楼层
引用第5楼lvjack于2010-03-04 10:53发表的  :
此项作用巨大:
“工程”->“编译选项”,在出现的对话框中点“链接”标签,将“当出现错误时显示行号”前面的对勾去掉

另外可以使用KOL_CE

同意
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2010-4-5 21:26:22 | 显示全部楼层
晕呼,这个东西一安装之后,就再也打不开IDE 了,出现的是
Winspool32.drv无法找到
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2010-5-9 16:07:31 | 显示全部楼层
学习
回复 支持 反对

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-5-2 03:05 , Processed in 0.226329 second(s), 13 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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