Link 个没有 libSystem macOS 的目标文件

Link object files without libSystem macOS

我正在为 x86-64 上的 macOS 编写编译器,但是当我 link 将目标文件放在一起时,ld

ld: dynamic main executables must link with libSystem.dylib for inferred architecture x86_64

但由于 libSystem 包含 libc,我不想使用它(它会给我很多重复项)。我该如何解决这个问题?

使用 -macosx_version_min 10.6 作为 ld 参数。这将在您的可执行文件中生成 LC_UNIXTHREAD 而不是 LC_MAIN。如果你想要更多的控制权,你需要完全摆脱链中的 ld