首页 > 解决方案 > 尝试运行 make 命令时出错

问题描述

我正在尝试安装程序,当我运行 make 或 make -f Makefile (按照安装说明)时,我得到以下输出:

g77 -O5 -Wall  -c  prep_output.f  -o prep_output.o 
dyld: Symbol not found: ___keymgr_global
  Referenced from: /usr/local/bin/g77
  Expected in: /usr/lib/libSystem.B.dylib

make: *** [prep_output.o] Abort trap: 6

我正在开发 macOS Mojave 10.14.6。在针对类似问题提出的其他一些解决方案之后,我已经在我的 Xcode 中安装了命令行工具,但这并没有奏效。请问有什么建议吗??

提前致谢

编辑:我摆脱了 g77 并通过 MacPorts 安装了兼容版本的 gcc (gcc8)。运行 make 命令后,我得到以下信息:

g77 -O5 -Wall  -c  prep_output.f  -o prep_output.o 
make: g77: No such file or directory
make: *** [prep_output.o] Error 1

所以我猜这个程序还需要g77设置吗?这是程序顺便说一句([ http://www.cfht.hawaii.edu/~arnouts/LEPHARE/install.html])。有没有办法依靠 gfortran 编译器来构建程序?

提前致谢

PS 我注意到当我安装 g77 时出现以下错误:

x usr/local/: Can't set user=0/group=0 for usr/local` 
`tar: Error exit delayed from previous errors.

但是它仍然安装 g77..

标签: makefilemacos-mojavedyldg77

解决方案


错误消息表明您的安装g77已损坏。make这与您尝试构建的特定项目或特定项目无关,除非该项目首先尝试使用g77。实际上,这有点令人惊讶,因为g77已经过时多年(gfortran是当前的 GNU Fortran 编译器),但我不确定 XCode 在这方面的确切期望。

另一方面,由于二进制文件的完整路径是/usr/local/bin/g77,我更倾向于认为您根本没有使用 XCode。可能您已将g77构建在其他系统上的内容转储到您/usr/local/bin的 .

你最好的选择可能是

  1. 摆脱您损坏的 g77 安装。
  2. 安装 Fink 或 MacPorts,或类似的项目。
  3. 为 gfortran 安装 Fink / MacPorts / 任何软件包(可能是 gcc-gfortran 或其中一些类似的软件包)以获得工作的 Fortran 编译器。
  4. 依靠该编译器来构建您的项目。

推荐阅读