使用较旧的libstdc ++在Mac OS上部署Qt C ++ 11应用程序

时间:2012-12-20 01:52:25

标签: macos deployment c++11 linker libstdc++

当我尝试在另一台计算机上部署我的应用时,它会因dyld /未解决的符号错误而失败。 (Qt静态发布版本,顺便说一句。)当我将libstdc++放入捆绑包(以及libSystem.Blibobjc.A)并正确运行install_name_tool时,我会收到新的链接器错误,对于这些库所依赖的库。例如,libc++.1。我真的希望我不必手动完成并在每个库及其子代上运行install_name_tool。 (或者写我自己的脚本,我不知道该怎么做。)有更好的方法吗?这对(onetwo)的问题基本上都是基于这个问题,但并没有达到我的目的,在任何情况下都没有得到解决。

以下是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

0 个答案:

没有答案