首页 > 解决方案 > 在 OSX10.15 上将自己的 dylib 与 libtool 链接时未定义的符号“__Unwind_Resume”

问题描述

尝试在 OSX 10.15 上编译代码。这在 OSX 10.12 上完美运行并被卡住了。非常熟悉使用未定义符号进行链接和问题解决的一般概念,如这里所描述的那样。仅使用命令行工具,libtool 和 clang++ 由 Xcode 提供。似乎是我本地 OSX CLT 链的问题。尝试重新安装完整的 Xcode。

编译文件:

clang++ -g -Wall -arch x86_64 -o ./Permutation.o Permutation.cpp
clang++ -g -Wall -arch x86_64 -o ./MarchingCubes.o MarchingCubes.cpp

然后链接到共享库:

libtool -install_name @rpath/libmodelling.dylib -dynamic  -L../../../release/lib/ -lstdc++ -lpthread  -lz -lm  Permutation.o MarchingCubes.o  -o ../../../release/lib//libmodelling.dylib

导致

Undefined symbols for architecture x86_64:
  "__Unwind_Resume", referenced from:
      __ZN13MarchingCubesD2Ev in MarchingCubes.o

尝试了一些关于stackoverflow的类似问题的提示,例如:设置-mmacosx-version-min=10.9,将-lstdc++更改为-lc++,尝试g++ face of clang++

提供“未定义符号”的 libunwind.dylib 位于我系统上的 /usr/lib/system 中,应该通过伞形框架 System 找到它,如果正确理解,编译器应该自己弄清楚。

感谢任何建议

标签: c++linkerxcode-command-line-tools

解决方案


推荐阅读