我正在 Linux 上编译包 BLACS。我编译了包,INSTALL目录的内容。当我尝试构建目录 TESTING 的内容时,出现错误
blacstest.f:(.text+0xb9): undefined reference to `blacs_gridinit_'
等等
当我尝试在库中查找函数时,我得到的消息是,
~/sources/BLACS/LIB$ nm blacs_MPI-LINUX-0.a | less | grep blacs_gridinit_
blacs_gridinit_.o:
0000000000000000 T blacs_gridinit__
Cblacs_gridinit_.oo:
所以该函数存在,但带有双下划线。如何让它只有一个?
我在 Bmake.inc 中尝试了一些东西。
# INTFACE = -Df77IsF2C
# INTFACE = -fno-underscoring
INTFACE = -DAdd_
但它似乎都不起作用。有人有这方面的经验吗?
谢谢,伊兰。
编辑: BLACS 带有一个 .inc 文件,其中所有内容都已配置。我有:
F77 = mpif77
F77NO_OPTFLAGS =
F77FLAGS = $(F77NO_OPTFLAGS) -O -fPIC
F77LOADER = $(F77)
F77LOADFLAGS =
CC = mpicc
CCFLAGS = -O4 -fPIC
CCLOADER = $(CC)
CCLOADFLAGS =
-assume 2underscore 在任何一个编译标志中都不被接受。此外,模板 .inc 文件说:
# ---------------------------------------------------------------------------
# The Fortran 77 to C interface to be used. If you are unsure of the correct
# setting for your platform, compile and run BLACS/INSTALL/xintface.
# Choices are: Add_, NoChange, UpCase, or f77IsF2C.
# ---------------------------------------------------------------------------
# INTFACE = -Df77IsF2C