0

我在 Mac 10.4.7 上安装 Mono 2.6.7,并且遇到了一些问题。我已经通过 MacPort 更新了一些库来解决其中的一些问题,但这是最新的。

当我启动 Mono 时,它崩溃了。任何帮助表示赞赏。

dyld: lazy symbol binding failed: Symbol not found: _strerror$UNIX2003
  Referenced from: /Library/Frameworks/Mono.framework/Versions/2.6.7/lib/libglib-2.0.0.dylib
  Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: _strerror$UNIX2003
  Referenced from: /Library/Frameworks/Mono.framework/Versions/2.6.7/lib/libglib-2.0.0.dylib
  Expected in: /usr/lib/libSystem.B.dylib
4

2 回答 2

1

OS X 的系统库通常包含多个版本的标准 C 函数。从 10.5 开始,OS X 支持Single Unix Specification。BSD 中的stderror函数在 SUS 中的行为略有不同。因此,该库有两个版本,_stderror并且_stderror$UNIX2003. 使用哪个是在编译时确定的,如此处所述使用 C 预处理器宏。

我认为您使用的 Mono 二进制文件是在较新的环境中编译的。你需要重新编译它。如果您在 10.4 机器上重新编译它,它应该会自动使用非 UNIX2003 版本,并且应该可以正常运行。

对了,说真的,把 10.4.7 更新到 10.4.11。

于 2010-10-06T01:34:17.267 回答
0

我通过安装 macports 解决了这个问题,然后做一个

sudo port install mono

它本质上是下载单声道和相关的依赖项,并针对本地库编译单声道。

于 2010-10-07T13:50:25.067 回答