【问题标题】:dyld: Symbol not found: __ZdaPvm - Running KING on Mac OS Xdyld:找不到符号:__ZdaPvm - 在 Mac OS X 上运行 KING
【发布时间】:2018-05-09 07:02:53
【问题描述】:

我在 Mac OS X 上运行 KING 时遇到问题。我认为这与 dyld 链接错误有关。有人对如何解决此错误有任何建议吗?

提前致谢。

   > ./king -b ./ex/ex.bed

返回:

dyld: Symbol not found: __ZdaPvm
  Referenced from: /Users/gaelgarcia/Downloads/./king (which was built for Mac OS X 10.13)
  Expected in: /usr/local/lib/libstdc++.6.dylib
 in /Users/gaelgarcia/./king
Abort trap: 6

【问题讨论】:

  • 通常dyld 错误是动态链接器问题。以我的经验,问题在于编译。您使用的是什么版本的 Mac?你是从源代码编译KING的吗?它是用所有必需的库构建的吗?

标签: macos bioinformatics dyld genetics


【解决方案1】:

我在尝试使用 the provided precompiled Mac version 时遇到了类似的问题。我能够在解压缩的源目录中获得一个构建 from source 的运行版本:

clang++ -L /opt/local/lib/libomp/ -lm -lz -O2 -fopenmp -o king *.cpp

首先在上述目录中安装了 libomp。我使用 Macports,所以我使用了

port install libomp

对于 Homebrew 用户,the recommendation seems to be to simply install llvm, which now includes openmp support directly.


编辑:通过 Homebrew (brew install llvm) 安装了 llvm,在我的 Mac OS 10.12 上正确构建和运行 KING 的命令是:

/usr/local/Cellar/llvm/6.0.0/bin/clang++ -I /usr/local/Cellar/llvm/6.0.0/include -L /usr/local/Cellar/llvm/6.0.0/lib -O2 -fopenmp -lm -lz -o king *.cpp

使用提供的示例.bed 文件运行新建的可执行文件:

> ./king -b ../ex/ex.bed

KING 2.1.3 - (c) 2010-2018 Wei-Min Chen

The following parameters are in effect:
Binary File :    ../ex/ex.bed (-bname)

【讨论】:

  • 谢谢你的回答,merv。你能详细说明一下你是如何安装libomp的吗?
  • 谢谢。我刚刚按照建议安装了llvm,并将我的构建命令更新为:clang++ -L /usr/local/Cellar/llvm -lm -lz -O2 -fopenmp -o king *.cpp...但仍然遇到与openMP有关的错误?:clang: error: unsupported option '-fopenmp'。我不确定我是否正确指定-L
  • @gaelgarcia,在the other answer 之后,您的行应该类似于:/usr/local/Cellar/llvm/bin/clang++ -I/usr/local/Cellar/llvm/include -L/usr/local/Cellar/llvm/lib -fopenmp -lm -lz -O2 king *.cpp。基本上,您将使用刚刚安装的 llvm 中的 clang。
  • 我可以付钱给你喝杯咖啡吗?它正在工作!非常感谢,非常感谢。我对咖啡很认真。我正在编辑您的答案,以便为未来的患者明确解决方案。顺便说一句,就我而言,/usr/local/Cellar/llvm/6.0.0/bin/clang++ -I/usr/local/Cellar/llvm/6.0.0/include -L/usr/local/Cellar/llvm/6.0.0/lib(注意所有 3 个路径中的额外 6.0.0)-O2 -fopenmp -lm -lz-o king *.cpp 成功了。
【解决方案2】:

对于像我这样在多年后寻找答案的人,我设法通过使用 Homebrew 安装 gcc 来解决这个问题。

brew install gcc 

其中包括 libgfortran。可能没有必要,因为我在 Anaconda 中安装了 dyld,但我发现这是让 King 在我的 mac 上工作的最简单方法。

编辑:我还必须在我的 bash 个人资料中设置我的 DYLD_LIBRARY_PATH,方法是

nano ~/.bash_profile

添加

export DYLD_LIBRARY_PATH=/opt/local/lib/libgcc/

或者当您在计算机上搜索动态库 libgcc_s.1.dylib 时,它位于任何位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-25
    • 2020-11-25
    • 2011-10-23
    • 1970-01-01
    • 2014-12-16
    • 1970-01-01
    • 2014-06-28
    • 2011-09-01
    相关资源
    最近更新 更多