Macos 在Mac M1芯片上运行32位地址空间码
在苹果发布M1 Mac之前,您可以在64位Mac上运行32位地址空间代码(使用4字节指针),方法是使用pagezero_大小选项将代码放置在4Gb的默认起点以下。例如,对于Hello World计划:Macos 在Mac M1芯片上运行32位地址空间码,macos,memory-address,32-bit,apple-m1,Macos,Memory Address,32 Bit,Apple M1,在苹果发布M1 Mac之前,您可以在64位Mac上运行32位地址空间代码(使用4字节指针),方法是使用pagezero_大小选项将代码放置在4Gb的默认起点以下。例如,对于Hello World计划: c++ hello.cpp -o hello -pagezero_size 0x400000 运行otool-lhello确认代码从0x400000开始 如果您尝试在M1 Mac上执行此操作,当您运行可执行文件时,您会得到: zsh: killed ./hello 在lldb下运行时,
c++ hello.cpp -o hello -pagezero_size 0x400000
运行otool-lhello确认代码从0x400000开始
如果您尝试在M1 Mac上执行此操作,当您运行可执行文件时,您会得到:
zsh: killed ./hello
在lldb下运行时,您会得到:
error: Malformed Mach-o file
因此,似乎不可能使用pagezero_大小选项在M1芯片上执行32位地址空间代码。有没有人知道有什么其他的方法可以让它发挥作用,或者已经不可能了