我正在尝试在 ubuntu 机器上使用 gcc 和 gfortran 包编译 f90 代码。不幸的是,在运行编译器时,我不断收到未定义的引用错误。
我按如下方式调用编译器:
gfortran -o gauss Guass1d.f90 linalg.f90
或者,我尝试为 linalg.f90 创建目标文件,然后使用以下内容:
gfortran -o guass Guass1d.f90 linalg.mod (tried with linalg.o as well)
这些都不起作用。这些代码来自位于此处的一本书https://sites.google.com/site/varga1kalmanbook/computer-codes/part-i/chapter-1/variational-method-shifted-gaussians(位于页面底部) )
我确信这只是我如何编译代码的问题,但由于缺乏 Fortran 经验,我无法具体说明它。
任何帮助将不胜感激!
以下对我有用:
$ gfortran -O2 -c linalg.f90
$ gfortran -O2 gauss_1d_c.f90 linalg.o -o gauss -llapack -lblas
所以原因是 linalg.f90 使用 LAPACK,因此你需要链接到 LAPACK 和 BLAS。