ld:链接 Apple Silicon 时,未找到 -lSystem 错误的库

问题描述 投票:0回答:1

xcode 版本为 14.3.1 (14E300c) Mac 操作系统是 Ventura 13.5

我正在运行的命令: ld hello.o -o hello -l System -syslibroot 'xcrun -sdk macosx --show-sdk-path' -e _main -arch arm64

链接器产生错误 ld:未找到 -lSystem 的库

我正在玩一个为 Apple Silicon Assembler 编写的简单的 hello world 程序。源文件是 hello.s。目标文件是 hello.o 我收到“ld:未找到 -lSystem 库”错误。 上面 xcrun 命令的结果是:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.3.sdk

系统库文件为:libSystem.dylib 我在这里找到了该文件:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libSystem。 dylib

尝试系统库的路径似乎无法解决问题。我确实看到这似乎是附加到 iphone 操作系统模拟器上的?我应该在 MacOS 目录中找到该库的另一个副本吗?

xcode macos assembly arm ld
1个回答
0
投票

我找到了一个解决方案,所以我将在这里分享给下一个搜索的人。在我找到的示例代码中,对主例程的引用是_main。将其更改为其他内容,例如 _start,然后使用 -e _start 可以解决问题。似乎 ld 在较新的 MacOS 版本中存在 _main 问题。

© www.soinside.com 2019 - 2024. All rights reserved.