在可执行程序的上下文中“二进制文件”和“可执行文件”之间的区别在哪里?

问题描述 投票:3回答:2

我经常看到术语“二进制”和“可执行文件”似乎在同一事物上互换使用。

不是用两个术语来描述完全相同的事物;经过编译的可执行输出程序,可以在终端上运行吗?

加强我的假设的是,这两件事也应该是相同的,这是在应用程序的安装文件夹中提供bin文件夹(“ bin”为“ binaries”的缩写)的一种常见做法,存储可执行文件,用户可以在其中运行。


我已经阅读了What's the difference between binary and executable files mentioned in ndisasm's manual?的问题和答案,但问题和他们的答案更多地集中在Clang和ndisasm的相应环境上。

我还在软件工程论坛上阅读了https://softwareengineering.stackexchange.com/questions/121224/what-are-binaries的问题和答案,但是在这里,可执行文件和二进制文件之间没有区别;通常只有“二进制”一词可以指代:

但是,在计算中,二进制是指:

  • Binary file,由非人类可读的文本组成
  • Executable,一种二进制文件,其中包含计算机要执行的机器代码
  • [Binary code,文本和数据的数字表示

[来源:https://softwareengineering.stackexchange.com/a/121235/349225]

其中,在编译过程的输出程序的上下文中,二进制文件与可执行文件相同,以及:]]

单词binaries

用作一组文件,[本质上是在计算机上运行的目标代码。 (如果是Java / .NET,则为虚拟机/运行时)[来源:https://softwareengineering.stackexchange.com/a/121234/349225]

在相同的地方。


    在可执行程序的上下文中,“二进制文件”和“可执行文件”之间有什么区别?
  • 区别在哪里?
  • 我经常看到术语“二进制”和“可执行文件”似乎在同一件事上互换使用。描述完全相同的事物不是两个术语。 ...
  • language-agnostic executable binaryfiles terminology
    2个回答
    9
    投票
    二进制文件不一定是可执行文件,例如,编译为.dll.so形式的库是二进制文件,但不是可执行文件。编译为.class.jar格式的Java程序不是可执行文件,但可以使用命令java -jar program.jar而不是命令./program.jar运行。

    可执行文件不一定是二进制的,例如,可以通过编写shebang line #!/usr/bin/python3并设置文件的可执行标志,使文本格式的Python脚本在Unix系统上可执行。


    1
    投票
    © www.soinside.com 2019 - 2024. All rights reserved.