【发布时间】:2020-01-09 18:46:12
【问题描述】:
我正在尝试使用 flang 在 FreeBSD 12 中编译一个“hello world”类型的程序。
这是我的源代码:
PROGRAM MAIN
INTEGER :: X
PRINT *, "Please, enter a number"
READ (*, *) X
PRINT *, "The square root of ", X, " is ", SQRT(X)
END PROGRAM MAIN
我尝试编译它没有成功:
$ flang -o test test.f90
/usr/local/bin/ld: /tmp/test-8e54ee.o: in function `MAIN_':
/usr/home/user/test/test.f90:6: undefined reference to `sqrt_'
/usr/local/bin/ld: /usr/local/flang/lib/libflangrti.so: undefined reference to `backtrace_symbols'
/usr/local/bin/ld: /usr/local/flang/lib/libflangrti.so: undefined reference to `backtrace'
clang-6.0: error: linker command failed with exit code 1 (use -v to see invocation)
自从我上次使用 Fortran 以来已经有很长时间了,这绝对是我第一次尝试使用 FreeBSD 编译它。欢迎任何帮助/提示。
【问题讨论】:
-
不要使用法兰。安装 gfortran 并快乐。
-
@evets as FreeBSD 不使用 gcc 但 clang 我认为 flang 是使用 Fortran 的自然方式。我肯定想找到一种在 FreeBSD 中使用 Fortran 的方法,如果我安装 gcc,那不会干扰 clang 吗?
-
gcc 不会干扰 clang。安装 ports/lang/gcc8 或 ports/lang/gcc9。您将获得 gfortran8 或 gfortran9。该数字是主要版本号。我的系统上有版本 6、7、8、9 和中继。一切正常。
-
@M.E.
flang是为 LLVM 制作 Fortran 编译器的早期尝试。它早就被废弃了,不应该被删除。
标签: fortran freebsd llvm-clang flang