当我尝试在另一台计算机上部署我的应用时,它会因dyld
/未解决的符号错误而失败。 (Qt静态发布版本,顺便说一句。)当我将libstdc++
放入捆绑包(以及libSystem.B
和libobjc.A
)并正确运行install_name_tool
时,我会收到新的链接器错误,对于这些库所依赖的库。例如,libc++.1
。我真的希望我不必手动完成并在每个库及其子代上运行install_name_tool
。 (或者写我自己的脚本,我不知道该怎么做。)有更好的方法吗?这对(one,two)的问题基本上都是基于这个问题,但并没有达到我的目的,在任何情况下都没有得到解决。
以下是otool
的所在地:
$ otool -L my_app
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (兼容版本1.0.0,当前版本41.0.0) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (兼容版本150.0.0,当前版本635.21.0) /System/Library/Frameworks/Security.framework/Versions/A/Security (兼容版本1.0.0,当前版本55148.6.0) /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (兼容版本2.0.0,当前版本153.0.0) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (兼容版本45.0.0,当前版本1138.51.0) @ executable_path / libz.1.dylib(兼容版本1.0.0,当前 版本1.2.5)@ executable_path // libstdc ++。6.dylib (兼容版本7.0.0,当前版本7.17.0) /usr/lib/libgcc_s.1.dylib(兼容版本1.0.0,当前 版本1094.0.0)/opt/local/lib/gcc47/libgcc_s.1.dylib (兼容版本1.0.0,当前版本1.0.0) @ executable_path / libSystem.B.dylib(兼容版本1.0.0, 当前版本159.1.0)@ executable_path / libobjc.A.dylib (兼容版本1.0.0,当前版本228.0.0) /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (兼容版本1.0.0,当前版本53.0.0) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (兼容版本300.0.0,当前版本833.25.0)
编辑:以下是我收到的初始错误消息,在第一轮更改消失后,将替换为有关libc++.1
的类似消息:
异常类型:EXC_BREAKPOINT(SIGTRAP)异常代码: 0x0000000000000002,0x0000000000000000崩溃的线程:0
Dyld错误消息:找不到符号:__ ZNSt8__detail12__prime_listE 参考自: /Users/nfoley/Downloads/WaveSorter-mac-1.0.1-static/WaveSorter.app/Contents/MacOS/WaveSorter 预期在:/ usr / lib / libstdc ++。6.dylib