Fortran:x86_64架构未定义符号

12

我正在Mac OSX Mavericks上使用gfortran编译器。我已经安装了Xcode和命令行工具。我正在尝试使用gfortran编译一个简单的helloworld程序,以测试是否一切正常,但不幸的是它不起作用。错误信息似乎表明我没有主函数,但我在代码中没有看到错误:

      program hello
         print *, "Hello World!"
      end program hello

但是当我尝试编译时

gfortran helloworld.f

我得到了以下错误:

Undefined symbols for architecture x86_64:
  "start", referenced from:
     -u command line option
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status

我不明白出了什么问题,我快要绝望了。我尝试过gfortran 4.8.2和gfortran 4.9.0,我也尝试重新安装Xcode和命令行工具,但似乎都没有用。

我知道有类似的问题被问过,但我找不到解决方案。只要能让编译器运行起来,就算是一个简陋的临时办法我也会很开心。


你是如何安装 gfortran 的? - trojanfoe
我尝试了不同的方法。我尝试了来自https://gcc.gnu.org/wiki/GFortranBinaries的自动安装程序(版本4.8.2和4.9.0),以及使用.tar文件手动安装。我总是得到相同的错误。我真诚地认为问题在于gfortran找不到某些文件或使用错误的文件,因为在Ubuntu上一切都正常(使用VirtualBox尝试过)。 - user3770102
1个回答

2

亲爱的,看了一分钟后就找到了解决方案。我没有使用https://gcc.gnu.org/wiki/GFortranBinaries中推荐的安装程序,而是直接安装了它。

brew install gcc
现在编译时没有出现任何错误提示。

brew 命令在 Big Sur 上无法正常工作,因为它无法写入系统文件夹,例如 /usr/bin 等。 - Nate Lockwood
@NateLockwood 那在2018年并没有引起我的注意;-) 无论如何,谢谢你的提示。 - qwerty_so
实际上,我发现Brew只需要访问/usr/local的内容,而苹果允许这样做。 - Nate Lockwood
@NateLockwood 最终没有任何问题了吗? - qwerty_so
1
没问题。对于这个问题,我发现“man”是我的好朋友。 - Nate Lockwood

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接