LINUX.ORG.RU

линковка с libc из стороннего environment'a

 


0

2

Всем привет.

Пытаюсь собрать проект с несистемным окружением и упорно натыкаюсь на проблемы, уже замучался. На этапе линковки ставлю флаг -nostdlib, в -L указываю директорию, где лежит злосчастная libc.so(то есть аналоги /lib и /usr/lib), добавляю -lc и на линковке получаю:

/usr/bin/ld: cannot find /lib/libc.so.6 inside
/usr/bin/ld: cannot find /usr/lib/libc_nonshared.a inside
--sysroot тоже, соответственно, указывает на рут стороннего окружения.

дистр — ubuntu 12.04 компилятор — g++-4.6

Не могу понять, почему ld ищет в /usr/lib и /lib(или это относительно sysroot?). Пробовал подсунуть системные либы: результат тот же

Буду рад любой помощи :)

★★★

А что ты исполользуешь для сборки? Самописный makefile или какие-то автоматизированные системы сборки?

Policeman
()

По ссылке выше написано:

1) Локализуй файл (найди его полный путь)

locate libc.so.6

2) Создай символическую ссылку на эту библиотеку

ln -s /path/to/libc.so.6 /lib/libc.so.6

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

да, я это пробовал без ссылки :)

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

К сожалению я еще не занимался подобным, но выложи свой Makefile (или то, из чего он генерируется, будет лучше) на pastebin.com, так хотя бы можно будет посмотреть, что внутри.

Policeman
()

Если ты кросскомпилишь, то линкер тоже надо собирать со сторонней libc, иначе ничего не получится.

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

нет, всё происходит на убунте для убунты

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

в выхлопе ничего не изменилось и желанный бинарник не создался(не слинковался) :)

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

AptGet, DELIRIUM: всё дело было в скрипте libc.so, который содержал в себе абсолютный путь. Никогда не доверяй чужим environment'ам, $username!

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

В принципе, это было почти правильное решение, но оно у меня не сработало с первой попытки(возможно, было что-то ещё). После очередного переписывания сценариев сборки символьная ссылка дала результат, так что, выходит, я где-то никриволапил и не заметил этого.

gavlig ★★★
() автор топика

Посмотри как это сделано в musl

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