编译 Fortran 代码时出现未定义的引用错误[重复]

问题描述 投票:0回答:1

我正在尝试在 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 经验,我无法具体说明它。

任何帮助将不胜感激!

fortran linker-errors gfortran
1个回答
7
投票

以下对我有用:


$ gfortran -O2 -c linalg.f90
$ gfortran -O2 gauss_1d_c.f90 linalg.o -o gauss -llapack -lblas

所以原因是 linalg.f90 使用 LAPACK,因此你需要链接到 LAPACK 和 BLAS。

© www.soinside.com 2019 - 2024. All rights reserved.