当前位置:首页 » 编程软件 » 静态编译的用处

静态编译的用处

发布时间: 2023-05-16 23:16:15

① 易语言中的编译和静态编译有何区别

静态编译就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。而编译就是把可执行文件和支持库一起写出到外部,在需要的时候直接对其中一个支持库进行搜索某一条命令.
打个比方.
你家有6个罐子,里面分别放了1块,5块,10块,20块,50块,100块.
然后你出门的时候要带每一种钱各一个,所以就从这六个罐子里每个罐子都拿出一张钱.
这就是静态编译.
我再打个比方.
你家还是有6个罐子,里面分别放了1块,5块,10块,20块,50块,100块.
然后你出门的时候,还是想要都带一种,然后你就不是每个罐子里拿钱了,而是直接把整个罐子都带在了身上出门.
相比起来,静态编译要轻松,小巧了许多了.

lz 手打很累的 采纳吧

② 易语言静态编译和独立编译有什么区别

静态编译是指编译后的exe文件(可执行文件)包含了所有支持库文件,只有单独一个exe文件。

独立编译在编译后也只有单独一个exe文件,不过会在运行后立即释放支持库到Windows的临时文件夹的子目录中。


可能的Windows临时文件存放目录:

%USERPROFILE%AppData

%USERPROFILE%AppDataLocalTemp

上文的“ %UESRPROFILE% ”是指用户目录。输入到电脑文件(文件资源管理器)的地址栏中可以直接打开,资料来源点此。

③ 配置Linux内核的时候,驱动的静态编译和动态编译有什么区别

驱动的动态编译会生成.ko文件,系统启动后需要加载该驱动后才能使用相应设备。
而静态编译则直接编译进内核,系统启动的时候会自动加载该驱动。
静态编译太多驱动至内核,会导致内核体积过大,启动时间较长。而动态编译则比较自由灵活,需要用的时候即加载,不需要的时候即卸载。我以前在EasyARM-iMX280的学习手册里看到写得很清楚,你可以去看看的。

④ vs2010为什么设置了静态编译还是需要dll文件才能运行exe

静态编译:就是在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖动态链接库。

编译方式:

第1种:

设置:

1、项目->配置属性->常规->MFC的使用:在静态库中使用MFC

2、项目 -> 配置属性->C/C++->代码生成->运行库 :选择 多线程调试(/MTd)。

编译时,选择的是debug,win32

然后执行编译生成方案,在该工程目录下的debug文件中,找到该.exe文件,即可在其他电脑运行。

第2种:

一般可以配置一下两项:

1.项目 -> 配置属性->常规->MFC的使用 :在静态库中使用MFC。

2.项目 -> 配置属性->C/C++->代码生成->运行库 :选择 多线程调试(/MT)。

编译时,选择的是release,win32(这个选择项在工具栏的debug选框中,一般我们使用debug方式)

⑤ 静态编译和动态编译有何不同

静态编译就是把库函数编译到你的程序里 这样编译的好处是 可以适应不同的平台 如果你是用window系统的话不建议用静态编译 因为这样会使你的代码量增大
动态编译就是不把库函数编译到你的程序里

⑥ 静态联编和静态编译

联编就是将模块或者函数合并在一起生成可执行代码的处理过程,同时对每个模块或者函数调用分配内存地址,并且对外部访问也分配正确的内存地址,它是计算机程序彼此关联的过程。按照联编所进行的阶段不同,可分为两种不同的联编方法:静态联编和动态联编。

静态联编是指在编译阶段就将函数实现和函数调用关联起来,因此静态联编也叫早绑定,在编译阶段就必须了解所有的函数或模块执行所需要检测的信息,它对函数的选择是基于指向对象的指针(或者引用)的类型,C语言中,所有的联编都是静态联编,据我所知道的,任何一种编译器都支持静态联编(废话)。

动态联编是指在程序执行的时候才将函数实现和函数调用关联,因此也叫运行时绑定或者晚绑定,动态联编对函数的选择不是基于指针或者引用,而是基于对象类型,不同的对象类型将做出不同的编译结果。C++中一般情况下联编也是静态联编,但是一旦涉及到多态和虚拟函数就必须要使用动态联编了。下面将介绍一下多态。

多态:字面的含义是具有多种形式或形态。C++多态有两种形式,动态多态和静态多态;动态多态是指一般的多态,是通过类继承和虚函数机制实现的多态;静态多态是通过模板来实现,因为这种多态实在编译时而非运行时,所以称为静态多态。

什么是静态编译
静态编译,就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。
编辑本段静态编译与动态编译的区别
动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令。所以其优点一方面是缩小了执行文件本身的体积,另一方面是加快了编译速度,节省了系统资源。缺点一是哪怕是很简单的程序,只用到了链接库中的一两条命令,也需要附带一个相对庞大的链接库;二是如果其他计算机上没有安装对应的运行库,则用动态编译的可执行文件就不能运行。
静态编译就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。所以其优缺点与动态编译的可执行文件正好互补。

⑦ 易语言的静态编译是什么意思

1、编译是把支持库文件和程序分开来,如果给别人去用,别人却没安装易语言,就要把支持库文件带上给那人才能用.
2、静态编译就是把支持库文件打包到程序里去.这样,如果对方没装易语言也照样可以正常使用和独立编译.
3、在易语言中,想把一个易语言源码程序变成一个可执行的EXE软件程序,有三种编译方式:
一、编译。
这种方式只是把源码变成EXE文件,不把所用到的支持库一起打包进程序中。
优点是程序体积小,可以有效地减少某些杀毒软件的误报;
缺点是只可以在装有易语言的机器上使用,在没有易语言的电脑上会说缺少支持库。
二、独立编译。
在易语言4.X版中,可以把支持库写到EXE程序中,方便在没有易语言的电脑上使用。
缺点是程序体积大,容易误报。在易语言5.X版中,独立编译改为静态编译,不再把支持库整个地打包到程序中,而把用到的命令打包,所以体积有所减小,也减少了误报。
但是静态编译需要使用外部的链接器,如果设置不好,则无法编译。
三、编译成安装文件。
这种方式的编译,可以直接生成安装文件,方便在其他电脑中进行软件的安装。
缺点是不小心就会把源码也打包进去。

⑧ 静态编译的好处

编译的时候默认都不是静态编译,
这样编译出来软件换到氏迹亮其他机器上可能就运行不了了。

比如在ubuntu 16.04 上面编译的软件就不能在 ubuntu 20.04 上面运行。

这里主要的问题出在 glibc 这个库的版本不一致。

静态编译的时候,应用程序包州拦含所有的内容歼宽,放在不同的机器上面都能运行。

我们静态编译的时候,我们使用 musl-libc 一个小型嵌入式的 libc 库。

静态编译有的软件可以运行在不同的系统里面如 ubuntu:16.04 20.04 centos 等系统。

⑨ 易语言静态编译和独立编译的区别

1、库文件和程序文件不同,编译是把支持库文件和程序分开来,如果给别人去用,别人却没安装易语言,就要把支持库文件带上给那人才能用。但是静态编译是把支持库文件打包到程序里去.这样,如果对方没装易语言也照样可以正常使用和独立编译。

⑩ 易语言里面一般用静态编译还是用动态编译用哪种好! 详解谢谢 我是个新手越详细月好! 多谢啦!

我喜欢用静态编译,因为会打包为一个EXE文件,非常方便,而且它生成的静态编译EXE是仿C++的格式,因此很多杀毒软件不会查杀,防止了误报.
但有些支持库不支持静态编译,这时,只好使用动态编译了,而用动态编译后,要将所用到的支持库文件都拷贝到EXE同在的目录中,最后用INNO SETUP打包发布才行.

热点内容
文件夹如何批量替换文件名 发布:2025-07-15 01:19:15 浏览:67
ftp上传网页 发布:2025-07-15 01:13:09 浏览:181
音乐文件夹图标 发布:2025-07-15 01:03:41 浏览:494
安卓机怎么反向充电 发布:2025-07-15 01:03:40 浏览:500
电脑使用华为云服务器 发布:2025-07-15 00:48:10 浏览:533
中考应该如何排解压力 发布:2025-07-15 00:17:54 浏览:362
安卓第三方应用软件是什么 发布:2025-07-15 00:12:06 浏览:149
程序业务配置存储 发布:2025-07-14 23:52:16 浏览:685
csdn编程挑战 发布:2025-07-14 23:52:08 浏览:791
国外乘法算法 发布:2025-07-14 23:51:14 浏览:11