Не удается найти -lgfortran, хотя gfortran установлен

Возможный дубликат:
lgfortran не найден

Я должен признать, что мой вопрос можно считать очень похожим на lgfortran not found, но поскольку я новичок в Linux, мне нужна дополнительная помощь, и я не смог найти то, что ищу в приведенном выше сообщении.

У меня установлена ​​свежая версия Linux Mint Debian, и я пытаюсь сделать привязку lapack для работы Ada.

Если я проверю gfortran, я получу:

gfortran-4.6 -v
Using built-in specs.
COLLECT_GCC=gfortran-4.6
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i486-linux-gnu/4.6/lto-wrapper
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.6.3-1' --with-   bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++,go --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-objc-gc --enable-targets=all --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.6.3 (Debian 4.6.3-1)

И если я locate libgfortran, я получаю:

/usr/lib/gcc/i486-linux-gnu/4.6/libgfortran.a
/usr/lib/gcc/i486-linux-gnu/4.6/libgfortran.so
/usr/lib/gcc/i486-linux-gnu/4.6/libgfortran.spec
/usr/lib/gcc/i486-linux-gnu/4.6/libgfortranbegin.a
/usr/lib/i386-linux-gnu/libgfortran.so.3
/usr/lib/i386-linux-gnu/libgfortran.so.3.0.0
/usr/share/doc/libgfortran3
/var/lib/dpkg/info/libgfortran3.list
/var/lib/dpkg/info/libgfortran3.md5sums
/var/lib/dpkg/info/libgfortran3.postinst
/var/lib/dpkg/info/libgfortran3.postrm
/var/lib/dpkg/info/libgfortran3.shlibs
/var/lib/dpkg/info/libgfortran3.symbols

Когда я запускаю makefile, я получаю:

make all
gcc -c cxbbase.ads
gcc -c cxbbase.ads
gnatmake cxbi.adb -largs ifinc.o -lgfortran -lm
gnatbind -x cxbi.ali
gnatlink cxbi.ali ifinc.o -lgfortran -lm
/usr/gnat/libexec/gcc/i686-pc-linux-gnu/4.5.3/ld: cannot find -lgfortran
collect2: ld returned 1 exit status
gnatlink: error when calling /usr/gnat/bin/gcc
gnatmake: *** link failed.
make: *** [cxbi] Error 4

Makefile, который я использую, находится здесь:

http://12000.org/my_notes/ada/lapack_and_blas/lapack_interf_makefile.txt

Поскольку я новичок в Linux, я был бы очень признателен, если бы я мог получить подробные инструкции о том, как это исправить.

Спасибо


person yCalleecharan    schedule 24.07.2012    source источник


Ответы (2)


Решение заключалось в /usr/lib/gcc/i486-linux-gnu/4.6 в LIBRARY_PATH. Это решение обсуждается здесь, на Comp Lang Ada:

https://groups.google.com/forum/#!topic/comp.lang.ada/Ii7YljKqu5M

person yCalleecharan    schedule 24.07.2012

Версии вашего GNAT и вашего GCC не совпадают. Пожалуйста, используйте одну и ту же версию для обоих.

Ваш GNAT, кажется, версии 4.5.3, а ваш GCC — 4.6.3.

Я предполагаю, что вам нужно обновить GNAT (пакет gnat в Debian). Как ты вообще установил свой GNAT? Кажется, в репозиториях Debian есть только версии 4.4 и 4.6. Кроме того, официальные пакеты вообще не используют /usr/gnat.

person Rommudoh    schedule 24.07.2012
comment
@ энон. Спасибо. Я установил GNAT GPL из Adacore libre. Раньше у меня была упакованная в Debian версия Ada (стабильная) версии 4.4, но makefile остановился сразу после двух строк. Поэтому я предположил, что проблема с GNAT. Вот почему я выбрал GNAT GPL, которая не упакована для Debian. - person yCalleecharan; 24.07.2012
comment
С GNAT GPL make-файл выполняется дольше (то есть больше строк), чем с GNAT 4.4, но затем я получаю жалобу на lgfortran. Но вы действительно верите, что это вина GNAT или что-то с lgfortran или gfortran? Спасибо. - person yCalleecharan; 24.07.2012
comment
Да, я заметил, что официальный или упакованный Debian GNAT использует /usr/bin/gcc, а не /usr/gnat/bin/gcc. 1 голос вверх. - person yCalleecharan; 24.07.2012