LINUX.ORG.RU

Как сказать g++ где лежит его libstdc++ :)


0

0

Ситуация следующая - есть сервер, на нем стоял компилятор, гдето в районе /opt. Его снесли. Остался другой компилер, стандартный, но когда им пытаешься собрать программу, то она продолжает искать libstdc++ библиотеку по старому пути (/opt/..blablabla.../lib/libstdc++) а не в стандартном месте - /usr/lib. При этом всевозможные make clean, make distclean и т.п. я делал. Возможно осталась какаято переменная окружения, которая говорит искать библиотеку именно там? Подскажите в чем дело.

★★
Ответ на: комментарий от male

/sbin/ldconfig -p | grep libstd
libstdc++.so.5 (libc6,64bit) => /usr/lib64/libstdc++.so.5
libstdc++.so.5 (libc6) => /usr/lib/libstdc++.so.5
libstdc++.so (libc6,64bit) => /usr/lib64/libstdc++.so
libstdc++.so (libc6) => /usr/lib/libstdc++.so

С этим вроде все в порядке, но всеравно компилятор ищет libstdc++ в /opt!

LX ★★
() автор топика
Ответ на: комментарий от LX

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

anonymous
()
Ответ на: комментарий от anonymous

/bin/sh ../libtool --mode=link g++ -O3 -pipe -ffast-math -fomit-frame-pointer -g3 -o
liboptima.la -L/home/alex/lib
* мои объектники*
-lblas -lvf2c -lmaloc -lm -lopenbabel -ldotconf -lgsl -lgslcblas

grep: /opt/cross/powerpc64-linux/lib/./libstdc++.la: No such file or directory
/usr/bin/sed: can't read /opt/cross/powerpc64-linux/lib/./libstdc++.la: No such file or directory
libtool: link: `/opt/cross/powerpc64-linux/lib/./libstdc++.la' is not a valid libtool archive

LX ★★
() автор топика
Ответ на: комментарий от ananas

Моя программа еще не успела создать ни одного *.la - какраз когда пытается liboptima.la сделать, так и валится, насоздавала только *.lo. А в системе я не могу ничего удалять - прав нет.

LX ★★
() автор топика
Ответ на: комментарий от LX

Да, в каком-то из *.la, цепляемых при компиляции прописан неправильный путь к libstdc++. Вообще-то это ошибка системы, поэтому лучше всего попросить администратора исправить положение, если самому прав не хватает. Хотя и обходные пути могут быть

1. Пропатчить libtool

2. Создать свою в текущей директории компиляции .la с правильным путем вместо проблемной.

3. Создать .la и включить путь к ней в LDFLAGS

ну и так далее. Извращаться можно различными способами.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.