易语言吧 关注:266,545贴子:1,664,400
  • 13回复贴,共1

【水贴】揭秘易语言"静态编译"原理

只看楼主收藏回复

其实大家很容易发现,只要你用易语言的静态编译,什么支持库什么的都可以自动包含在编译的软件里,而不像普通编译的那样需要把支持库放在和他一个目录下面。网上也没人讲过易语言是怎么实现静态编译的,既然我已经研究出来了,那么就跟大家分享一下吧
首先拿到一份易语言源码,普通编译且静态编译,输出两个不同的文件。易语言源码包含的支持库越多越能说明问题。在此我把支持库全部选上,随便放几句不同支持库的代码。
一共使用到以下三个支持库:
krnln.fnr
spec.fne
eImgConverter.fne
然后分别放哈勃,比较信息
等他分析完
先可以看到,普通编译的大小是8kb,静态编译是1.09mb
好吧分析完了没有任何区别,只好稳稳地水了一贴
如果发现有区别再另开新帖吧


1楼2017-06-29 20:53回复


    IP属地:浙江来自iPhone客户端7楼2017-06-29 21:17
    收起回复
      什么玩意我还以为分析出来什么了呢,水笔


      IP属地:北京来自Android客户端8楼2017-06-29 23:11
      回复
        为什么你们火星人总觉得自己消息灵通


        IP属地:湖北来自Android客户端9楼2017-06-29 23:21
        回复
          快举报,居然让你发现了底层秘密


          IP属地:辽宁来自Android客户端10楼2017-06-29 23:21
          回复
            我觉得原理可能是编译出来的文件里面有相关支持库的信息。在你写的软件启动时静态编译会给你的代码加多几个文件(#图片1之类的)然后启动软件时会自动创建内存镜像加载释临时支持库文件从而达到看起来很干净其实还是有加载fne库的样子。


            IP属地:加拿大来自iPhone客户端11楼2017-06-30 02:03
            收起回复
              普通编译8kb?!


              IP属地:陕西来自WindowsPhone客户端12楼2017-06-30 07:06
              回复
                水笔


                来自Android客户端13楼2017-06-30 07:27
                回复
                  其实 我是分析出来了,但是以前分析出来的图找不到了,新的这个没有,所以我只好吧以前的图在找找,如果还在的话今天能找到发上来


                  14楼2017-06-30 07:43
                  回复
                    其实就是静态编译把支持库打包重组排序到软件,启动时解码放置,虚拟内存,第一次开启比较慢就是这个道理,但是只后就快了👈注意这个


                    IP属地:福建来自Android客户端15楼2017-07-01 15:49
                    收起回复