Mac OS的链接器问题

科斯塔斯

我最近在系统编程课程中开始将ada用于实验室,我可以说这真的很有趣。

我在计算机实验室尝试了大部分程序进行测试,因此决定将编译器及其链接工具安装在MacBook中。

当我尝试打印经典的hello world程序时,虽然安装已完成,但似乎没有问题,我收到以下消息:

gprbuild greet.adb                                                                                                                                                                                                            
using project file /Users/xyderos/opt/GNAT/2020/share/gpr/_default.gpr
Bind
[gprbind]      greet.bexch
[Ada]          greet.ali
Link
[link]         greet.adb
ld: library not found for -lSystem
collect2: error: ld returned 1 exit status
gprbuild: link of greet.adb failed
gprbuild: failed command was: /users/name/opt/gnat/2020/bin/gcc greet.o b__greet.o - L/Users/name/ada/ -L/Users/name/ada// -L/users/name/opt/gnat/2020/lib/gcc/x86_64-apple-darwin17.7.0/8.4.1/adalib/ /users/name/opt/gnat/2020/lib/gcc/x86_64-apple-darwin17.7.0/8.4.1/adalib/libgnat.a -Wl,-rpath,@executable_path/ -Wl,-rpath,@executable_path/..//opt/gnat/2020/lib/gcc/x86_64-apple-darwin17.7.0/8.4.1/adalib -o greet

我对lSystem库感到非常困惑。

似乎该库在Mac上不存在(也许我需要安装Xcode?)。

有没有人知道这个问题的线索,或者有没有可能通过brew安装更好的方法?

在此先多谢!

英格玛·赫普(Ingmar Hupp)

在我的MacOS 10.14上,以下代码对我有用,而不必下载Xcode庞大的Blob,我既没有带宽也没有磁盘空间。我不知道这是否仍适用于MacOS 10.15(不打算升级)。

该信息大部分来自Simon Wright的博客文章:https : //forward-in-code.blogspot.com/2019/06/macos-software-development-kit-changes.html

  1. 您只需要Xcode命令行工具(不需要Xcode): xcode-select --install
  2. 现在解压缩包含的标题: sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
  3. 并告诉GNAT在哪里找到它们: mv ce2109-specs /usr/local/opt/GNAT/2019/lib/gcc/x86_64-apple-darwin17.7.0/8.3.1/specs

ce2109-specs文件来自上面的博客文章。这为我完成了工作,GNAT现在可以在MacOS 10.14上链接工作二进制文件。

如果您使用的是10.15,但它不起作用(因为没有更多的Xcode命令行工具,或者它们缺少标头包),那么很遗憾,您必须按照GNAT自述文件安装Xcode。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章