我有一个程序会生成自我修改的代码(如果您有兴趣,请参阅https://tigress.wtf/selfModify.html)。它可以在x86 Darwin和Linux上运行。在达尔文,我编译为
gcc -g -segprot __TEXT rwx rwx self_modifying.c -o self_modifying.exe
最近,这似乎不起作用,我明白了>>
dyld: malformed mach-o image: __TEXT segment maps start of file but is writable
当我运行程序时。
我正在MacOS 10.15.3上运行clang版本6.0.1。任何帮助,将不胜感激。
我有一个程序会生成自我修改的代码(如果您有兴趣,请参阅https://tigress.wtf/selfModify.html)。它可以在x86 Darwin和Linux上运行。在达尔文上,我使用gcc -g -segprot ...
您正在观察的问题是macOS Catalina的限制,与您的编译器无关。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ...............]
Mach-O load命令有2种格式,它们指示可执行文件本身可以使用的最小MacOS。-LC_BUILD_VERSION
(如果我没记错的话,新版本在10.14左右推出)-LC_VERSION_MIN_MACOSX
(旧版)