【问题标题】:ld: unknown option: -melf_x86_64 while compiling shared ATLAS libraries on MacOSld:未知选项:-melf_x86_64 在 MacOS 上编译共享 ATLAS 库时
【发布时间】:2012-05-04 07:58:18
【问题描述】:

我正在尝试安装 ATLAS BLAS 库 using this guide。我有静态库工作,但重要的是我也有位置独立的库。我到达了指南中应该发出 make shared 以获取共享库的地方,但我收到以下错误:

$ make shared
rm -f libatlas.so liblapack.so
make libatlas.so liblapack.so libf77blas.so libcblas.so liblapack.so
ld -melf_x86_64 -shared -soname libatlas.so -o libatlas.so \
        --whole-archive libatlas.a --no-whole-archive -lc -lpthread -lm
ld: unknown option: -melf_x86_64
make[1]: *** [libatlas.so] Error 1
make: *** [shared] Error 2

我查看了 ATLAS 的勘误表,但似乎没有解决这个问题。我会很感激关于前进方向的建议。

--安德鲁

【问题讨论】:

  • 您使用的是什么工具链(和版本)?
  • OS X 是一个“非精灵”平台,因此链接器不理解特定于精灵的选项也就不足为奇了。我只能猜测您的配置在某个地方是错误的,并且在不应该的时候使用了 gnu/linux 特定的选项。

标签: macos unix ld blas atlas


【解决方案1】:

ld -melf_x86_64 -shared -soname libatlas.so -o libatlas.so --whole-archive libatlas.a --no-whole-archive -lc -lpthread -lm

这个 Makefile 是

  1. 虚假:应该几乎永远不要将任何内容直接与ld 链接
  2. 假设它在 ELF x86_64 平台上使用 GNU-ld(在您的情况下不正确)。

您需要针对您的平台调整这些说明。使用适当的命令来构建 MacOS 共享库(我不知道它们是什么,但我相信您可以使用搜索引擎和/或man ld 来查找)。

【讨论】:

    猜你喜欢
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 2022-08-23
    • 2018-04-09
    • 2020-10-24
    • 2011-02-01
    • 1970-01-01
    • 2021-06-07
    相关资源
    最近更新 更多