首页 > 解决方案 > 使用 gfortran 编译 Fortran 函数:目标文件是为比链接更新的 macOS 版本构建的

问题描述

给定一个非常简单的 fortran (95) 函数和对程序的非常简单的 c++ 调用,我应该能够使用以下命令编译程序:

g++ -c main1.cpp
gfortran -c test.f95
g++ main1.o test.o -o run

但是,在这里我收到以下错误:

ld: warning: object file (test.o) was built for newer macOS version (11.5) than being linked (11.0)
Undefined symbols for architecture arm64:
  "hello_()", referenced from:
      _main in main1.o
 "__gfortran_st_write", referenced from:
      _hello_ in test.o
  "__gfortran_st_write_done", referenced from:
  _hello_ in test.o

“__gfortran_transfer_character_write”,引用自: test.o ld 中的hello:未找到架构 arm64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

在这里,在-v标签之前-o和之后-o添加标签并运行exe并没有解决问题,如错误消息所示。

标签: macosgfortranfortran95

解决方案


推荐阅读