符号表缺失 libresolv

ld: Undefined symbols:

1
2
3
4
5
6
7
ld: Undefined symbols:
  _res_9_nclose, referenced from:
      _runtime.text in libk8z.a[arm64][2](go.o)
  _res_9_ninit, referenced from:
      _runtime.text in libk8z.a[arm64][2](go.o)
  _res_9_nsearch, referenced from:
      _runtime.text in libk8z.a[arm64][2](go.o)

解决方法

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
这个错误表明在链接时,找不到_res_9_nclose,_res_9_ninit和_res_9_nsearch这三个符号。这些符号通常来自于libresolv库,这是一个用于处理DNS解析的库。

要解决这个问题,你需要确保在Xcode中正确链接了libresolv库。请按照以下步骤操作:

打开你的Xcode项目。
选择你的项目目标(在项目导航器中,点击项目名,然后在"Targets"列表中选择你的目标)。
转到"Build Phases"选项卡。
展开"Link Binary With Libraries"部分。
点击"+"按钮,搜索并添加libresolv.tbd库。
添加libresolv.tbd库后,重新编译项目,错误应该会消失。

参考资料

Building and Deploying a Rust library on iOS