Linux에서 BLACS 패키지를 컴파일 중입니다. INSTALL 디렉토리의 내용 인 패키지를 컴파일했습니다. 내가 디렉토리 테스트의 내용을 구축 할 때, 나는 얻을BLACS 컴파일시 Fortran C - 호출 규칙 - 밑줄 불일치
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_
하지만 그 중 아무 것도 작동하지 않는 것 같습니다. 누구나이 경험이 있습니까?
감사합니다. Elan.
편집 : 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
'-DNoChange'를 시도 했습니까? –
예, 여전히 동일합니다. – Elan
어떤 컴파일러와 링커를 사용하고 있습니까? '-assume 2underscores'와 같은 깃발을 보셨나요? –