【问题标题】:How do I fix `ld: unexpected token: !tapi-tbd-v3 file` with gfortran on my Mac?如何在我的 Mac 上使用 gfortran 修复“ld:意外令牌:!tapi-tbd-v3 文件”?
【发布时间】:2020-01-29 05:03:26
【问题描述】:

每当我尝试在我的 Mac Mojave (10.14) 上编译 .f90 文件时,我都会收到此错误

collect2:致命错误:ld 以信号 11 终止 [分段错误:11] 编译终止。 ld:意外令牌:!tapi-tbd-v3 文件 '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/libSystem.tbd' 用于架构 x86_64

我已尝试多次卸载 Xcode 和命令行工具,并创建了指向 *tbd 文件的符号链接,因此它不再需要 tbd 文件。我也尝试从我的笔记本电脑中删除 gfortran 并重新安装它,但它仍然无法正常工作。

我真的不知道如何解决这个问题,而且我也是这个编译器/链接器主题的初学者。任何帮助将不胜感激。

【问题讨论】:

  • 您是否尝试过下载 gfortran 的源代码并在您的 mac 中编译它?您还可以找到可以使用的 dmg 安装程序。经过快速搜索,我找到了this link。即使您决定只使用提供的 dmg,有关如何构建 dmg 的文档也值得一看。
  • 我尝试使用 dmg 安装 gfortran,但我仍然遇到与上述相同的错误。我不完全确定如何使用源代码编译 gfortran。我尝试再次卸载并安装 gcc(gfortran 是 gcc 的一部分?),但仍然无法正常工作。
  • 您必须单独卸载 gfortran。检查this 以了解如何在 mojave 中卸载它。要从源代码编译 gfortran,您必须安装 gcc。检查this link,了解如何编译和构建自己的 dmg

标签: xcode macos linker fortran


【解决方案1】:

如果您通过 MacPorts 安装了 gfortran,请将其卸载并安装 ld64 端口的 xcode 变体:

sudo port install ld64 +ld64_xcode 

在此之后,使用-s 安装 gcc(版本 N)以在本地计算机上构建它:

sudo port install libgcc<N> libgcc
sudo port install -s gcc<N>

很遗憾,我不熟悉不使用 MacPorts 的解决方案。

【讨论】:

    【解决方案2】:

    安装 macports 后,以下 2 个命令对我有用

    sudo port -f activate ld64
    sudo port install ld64 +ld64_xcode
    

    【讨论】:

      猜你喜欢
      • 2020-12-14
      • 2023-01-19
      • 2021-09-25
      • 1970-01-01
      • 2019-12-23
      • 1970-01-01
      • 2019-08-29
      • 2020-10-19
      • 1970-01-01
      相关资源
      最近更新 更多