Смешанный язык, статически связанный с gfortran и gcc

У меня есть некоторый код, написанный на C и Fortran, который я хочу скомпилировать в статически связанный исполняемый файл. Если я скомпилирую код динамически (используя-fno-underscoring вариант для гфортран) все отлично работает. Однако я хочу связать его в файл .so, статически связывая большинство необходимых библиотек, а затем динамически связать сlibkrb5очень похоже на метод, описанный вэтот блог

Я выполнил действия, описанные в предыдущем сообщении в блоге, и мне удалось без проблем скомпилировать библиотеку .so.nm показывает, что он в хорошей форме, с моими подпрограммами на языке Fortran и функциями C, которые отображаются:

[...]001020b9 T turnover
[...]000d31ea T initio

Первая функция написана на фортране, а вторая на C. Они неПодчеркивание или что-то еще, поэтому они должны ссылаться. Моя основная программа (на Фортране) скомпилирована, как и другие исходные файлы на Фортране. Когда я пытаюсь связать, я получаю сообщение об ошибке:

gfortran  -m32  main_program.o -o program_static  -L./ -llibname -lkrb5 -lgssapi_krb5 -lsasl2 -lgfortran
/usr/lib/gcc/i486-linux-gnu/4.3.3/../../../../lib/crt1.o: In function `_start':
/build/buildd/glibc-2.9/csu/../sysdeps/i386/elf/start.S:115: undefined reference to `main'

collect2: ld вернул 1 статус выхода

Вmain_program.oЯ вижу, что есть

00000000 T MAIN__

Все выглядит по порядку, так почему это не ссылки?

Ответы на вопрос(1)

Ваш ответ на вопрос