已编译程序的可执行文件与自动运行程序有什么区别?
答案 0 :(得分:1)
希望我明白你的问题
所有自动运行程序都是已编译程序的可执行文件,但反之则不然。
通常,“自动运行程序”是任何其他程序,具有操作系统选择的“自动运行”的特定名称。程序的 autorunness 不是所述程序的属性,而是该程序上方的管理层。
答案 1 :(得分:0)
如果通过自动运行,你的意思是脚本化(没有像perl,python,bash那样编译)?
不同之处在于,使用已编译的程序,只需编译一次,它就可以移植到其他机器上,而不管用于构建程序的库和可执行文件。例如,如果用C编写程序,则可以获取编译时生成的二进制文件,并将其移动到具有类似体系结构的其他计算机。编译该程序所需的库和可执行文件,例如glibc和gcc,不需要存在于其他机器上。
使用脚本程序,该语言的库和可执行文件必须存在于将程序移植到的计算机上。换句话说,如果你编写一个bash脚本,bash必须存在于你移植到的每台机器上,以便它能够解释该文件。这是因为一旦执行文件就会调用bash解释器,然后解释器读入文件并执行文件所要求的任何操作。
使用脚本程序,您依赖其他用户拥有一个非常接近您的环境。如果您在3.0版本下编写python脚本并想要分发它,那么使用它的每个人都必须在他们的系统上安装python 3.0(或至少提供兼容功能的python版本)。使用已编译的程序,只要没有外部非语言相关的依赖项并且机器具有类似的体系结构,您就可以更轻松地使用该程序。