gpt4 book ai didi

macos - nm 找不到符号时处理 "dyld: lazy symbol binding failed: Symbol not found"错误

转载 作者:行者123 更新时间:2023-12-02 04:56:29 27 4
gpt4 key购买 nike

我有一个名为 myBinary 的胖(32 位和 64 位)Intel 二进制文件,它无法在另一个运行 Mac OS X 10.8.2 的工作站上运行:

$ myBinary
dyld: lazy symbol binding failed: Symbol not found: __ZNSt8__detail15_List_node_base7_M_hookEPS0_
Referenced from: /usr/local/bin/myBinary
Expected in: /usr/lib/libstdc++.6.dylib

dyld: Symbol not found: __ZNSt8__detail15_List_node_base7_M_hookEPS0_
Referenced from: /usr/local/bin/myBinary
Expected in: /usr/lib/libstdc++.6.dylib

Trace/BPT trap: 5

我从运行 GCC 4.7.2 的 Mac OS X 10.8.2 工作站编译它:

$ gcc --version
gcc (MacPorts gcc47 4.7.2_2+universal) 4.7.2

我运行了 nm 并且符号未定义:

$ nm /usr/local/bin/myBinary | grep __ZNSt8__detail15_List_node_base7_M_hookEPS0_
U __ZNSt8__detail15_List_node_base7_M_hookEPS0_

编译myBinary时我错过了什么或做错了什么?我不确定如何处理 /usr/lib/libstdc++.6.dylib 中缺少的符号 — 我是否应该将 C++ 库静态编译到 myBinary 中?

最佳答案

是的,您有两个选择,要么不使用客户没有的库...(您可以将它们作为 dyld 或框架提供。)

或者只是静态链接库...如果您的包只有一个进程,那么实际上最终会减少内存和磁盘空间,因为您可以删除不使用的符号。

关于macos - nm 找不到符号时处理 "dyld: lazy symbol binding failed: Symbol not found"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15541706/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com