Я обнаружил, что idb не может войти в одну из моих функций.idb не может найти функцию - любой намек?
Я связываю c-программу (main.c) с функцией fortran90 (func1), которые принадлежат модулю (mod1), который ссылается на другую функцию (func2) в другом модуле (mod2). Структура подобна той
main.c (с) ---> func1 в Mod1 из lib1.a (FORTRAN) ---> func2 в Mod2 из lib2.a (Fortran)
* проблема is: Я не могу войти в func2 с idb. Когда я пытаюсь выполнить func2 из func1, отладчик переходит к следующей строке в func1. Я не использовал gdb, потому что знаю, что он не может войти в модуль fortran, не так ли?
Я компиляции с Intel 11.1 со следующими флагами:
CFLAGS=-ggdb -debug full -O0 -Wall -traceback
F90FLAGS=-g -O0 -check bounds -warn all -traceback -align all -align rec8byte
Я не знаю, что делать, любой намек ценится
Edit: Я Я написал простой fortran 90, которая напрямую вызывает lib2.a без использования lib1.a. Я считаю, что 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
Я не понимаю, что происходит не так, я обычно компилировать библиотеки, как, что и отладчик работает!
Любая идея?
, потому что я понял, что ошибался в рассказе о препроцессорной директиве. Я очень хорошо отредактировал свой предыдущий пост, но потом понял, что это совсем другой вопрос. Таким образом, я удалил предыдущий и перестал один новый, потому что предыдущий вводил в заблуждение. Это против каких-либо руководящих принципов или правил stackoverflow? – simona
Не знаю, мне было просто любопытно :) – Eregrith
Всегда используйте тег [tag: fortran] и добавляйте только версию, когда это необходимо, чтобы отличить ваш вопрос. Например, вы не можете использовать Fortran 2008, но только Fortran 90. –