Проблемы с отсутствующими библиотеками при компиляции кода на C: ld не может найти библиотеки

#c #ld

#c #ld

Вопрос:

Я пытаюсь скомпилировать некоторый код на C, который я унаследовал от коллеги. Я сталкиваюсь с некоторыми проблемами с отсутствующими библиотеками, то есть вывод make

 gcc -L. -L/lib -L/lib -L/lib -L/lib64 -o gnd2fmdpara gnd2fmdpara.o      git_version.o -lfmd -lnumerics -lmisc -llapack -lblas -lgfortran -lm -lz
 /usr/bin/ld: cannot find -llapack
/usr/bin/ld: cannot find -lblas
/usr/bin/ld: skipping incompatible /lib/libm.so when searching for -lm
  

Я поместил библиотеки, в которых находятся файлы LAPACK и BLAS, в PATH, и, что важно, LD_LIBRARY_PATH, но все равно выдает ту же ошибку.

Может кто-нибудь подсказать мне, как я могу помочь моему Makefile найти недостающие библиотеки? Большое вам спасибо!

Комментарии:

1. Похоже, у вас проблема с gcc установкой.

2. Фух! Спасибо, @Eugene_Sh. Это было удивительно быстро! Есть идеи, какие проблемы?

3. Я вижу, что ваша математическая библиотека, как утверждается, несовместима. Попробуйте переустановить gcc, glibc и друзей.

4. Нет, подождите. Это может быть связано с тем, что вы пытаетесь связать некоторые предварительно скомпилированные файлы * .o, которые, вероятно, были скомпилированы с использованием других настроек. Посмотрите здесь .

5. Вау! Это имеет смысл! Это именно то, что я делаю. Я попробую перекомпилировать файлы .o в этой текущей системе и посмотрю, как это получится. Большое спасибо за потрясающую ссылку.