2012-02-14 3 views
0

idb가 내 기능 중 하나에 들어갈 수 없음을 발견했습니다.idb가 함수를 찾을 수 없습니다 - 어떤 힌트입니까?

다른 모듈 (mod2)의 다른 함수 (func2)에 링크되는 모듈 (mod1)에 속하는 Fortran90 함수 (func1)와 c- 프로그램 (main.c)을 연결합니다. 구조는

main.c의 (c)처럼 ---> lib1.a (FORTRAN) ---> lib2.a (FORTRAN)의 MOD2에 FUNC2

* 문제 MOD1에 FUNC1 is : idb와 함께 func2를 실행할 수 없습니다. func1에서 func2로 들어가려고 할 때 디버거는 func1의 다음 줄로갑니다. 포트란 모듈로 들어갈 수 없다는 것을 알고 있기 때문에 나는 gdb를 사용하지 않았다.

나는 다음과 같은 플래그와 인텔 11.1 컴파일 오전 : 내가 무엇을 해야할지를 모르는

CFLAGS=-ggdb -debug full -O0 -Wall -traceback 

F90FLAGS=-g -O0 -check bounds -warn all -traceback -align all -align rec8byte 

, 어떤 힌트가 감사


편집 : 나는 간단한 쓴 lib1.a를 사용하지 않고 lib2.a를 직접 호출하는 Fortran 90 프로그램. idb가 lib2.a로 들어갈 수 없다는 것을 알았습니다.

나는 내가 잘못, 나는 보통 그와 디버거 작품 같은 라이브러리를 컴파일 무슨 일이 일어나고 있는지 이해하지

ifort -g -O0 -check bounds -warn all -traceback -align all -align rec8byte -o a.o -c a.f90 -I 
ifort -g -O0 -check bounds -warn all -traceback -align all -align rec8byte -o b.o -c b.f90 -I 
ifort -g -O0 -check bounds -warn all -traceback -align all -align rec8byte -o c.o -c c.f90 -I 
ifort -g -O0 -check bounds -warn all -traceback -align all -align rec8byte -o d.o -c d.f90 -I 
/u/shared/programs/x86_64/ifort/11.1.064/bin/intel64/xiar rcvf lib2.a a.o b.o c.o d.o 
xiar: executing 'ar' 
a - a.o 
a - b.o 
a - c.o 
a - d.o 

같은 라이브러리를 컴파일!

아이디어가 있으십니까?

내가 인수없이 -I를 사용하고 있습니다 :

+0

내가 전처리 지시어의 이야기에 잘못이 있다는 것을 깨달았 기 때문에. 나는 이전 글을 많이 편집했지만, 완전히 다른 질문이라는 것을 깨달았다. 따라서 이전 제품을 삭제하고 새로운 하나의 브랜드를 재 게시합니다. 이전 제품이 오도 된 것입니다. stackoverflow의 지침이나 규정에 위배됩니까? – simona

+0

모르겠다. 나는 단지 궁금했다. – Eregrith

+0

항상 태그 [tag : fortran]을 사용하고 질문이 구체적이라는 것을 구별하기 위해 필요한 경우에만 버전을 추가하십시오. 예를 들어, Fortran 2008은 사용할 수없고 Fortran 90 만 사용할 수 있습니다. –

답변

0

이 내가 인텔 포럼에 얻은 대답은이 잘못하고 문제가 발생합니다.