在 Ubuntu 中使用 FASM 制作可移植可执行文件
Making a Portable Executable using FASM in Ubuntu
堆栈社区!
我目前在 Ubuntu 17.10 学习汇编语言。当我在 Windows 时,我使用了一个名为 'win32a.inc' 和 "MyLib.inc" 的库来 read_eax 和 print_hex。语法曾经是这样的:
format PE console
include 'win32a.inc'
entry start
section '.text' code readable executable
start:
mov eax,0xffff
call print_eax
push 0
call [ExitProcess]
include 'MyLib.inc'
但在 Windows 上没有很好的体验,让我转向 Linux。我这样做是为了安装 fasm:
sudo apt-get install fasm
但是当我尝试制作一个可执行文件时(我打算 运行 它与 wine 一起使用)我在终端上收到一个错误:'win32a.inc' 源文件丢失。
'win32a.inc' 是 Windows 上的默认 fasm 库。我不知道如何在 Linux 中使用它。不过,我有所有 Windows 库的备份 ;_;
Is there a way I can make a portable executable in Linux using FASM ??
您可以在任何 OS.
上编译为 FASM 支持的任何类型的文件
诀窍是 Windows FASM 端口将文件名视为不区分大小写,但 Linux FASM 将它们视为区分大小写。
因此,请检查 include
指令中使用的文件名的大小写。
FASM 默认包含库的真实文件名是全部大写。因此,如果您想使用 Linux(或任何其他 Unix 类型 OS)FASM 编译此代码,则需要使用 WIN32A.INC
。
堆栈社区!
我目前在 Ubuntu 17.10 学习汇编语言。当我在 Windows 时,我使用了一个名为 'win32a.inc' 和 "MyLib.inc" 的库来 read_eax 和 print_hex。语法曾经是这样的:
format PE console
include 'win32a.inc'
entry start
section '.text' code readable executable
start:
mov eax,0xffff
call print_eax
push 0
call [ExitProcess]
include 'MyLib.inc'
但在 Windows 上没有很好的体验,让我转向 Linux。我这样做是为了安装 fasm:
sudo apt-get install fasm
但是当我尝试制作一个可执行文件时(我打算 运行 它与 wine 一起使用)我在终端上收到一个错误:'win32a.inc' 源文件丢失。
'win32a.inc' 是 Windows 上的默认 fasm 库。我不知道如何在 Linux 中使用它。不过,我有所有 Windows 库的备份 ;_;
Is there a way I can make a portable executable in Linux using FASM ??
您可以在任何 OS.
上编译为 FASM 支持的任何类型的文件诀窍是 Windows FASM 端口将文件名视为不区分大小写,但 Linux FASM 将它们视为区分大小写。
因此,请检查 include
指令中使用的文件名的大小写。
FASM 默认包含库的真实文件名是全部大写。因此,如果您想使用 Linux(或任何其他 Unix 类型 OS)FASM 编译此代码,则需要使用 WIN32A.INC
。