Программа, скомпилированная с помощью glibc, может работать в Linux с uClibc?

У меня есть программа, скомпилированная с использованием glibc, и мне нужно, чтобы она работала на цели MIPS с прошивкой Openwrt с использованием uClibc. Это возможно? Я помещаю программу в Openwrt, и когда я пытаюсь запустить ее, результат: не найден.

В чем проблема?

Спасибо.

2 ответа

uClibc совместим только с API, но не совместим с ABI с glibc.

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

Кстати, документация может быть сильно устаревшей, если вы чувствуете, что что-то не так, обратитесь к документации по сборке рута uClibc.

Более конкретно, первое место, которое, скорее всего, приведет к сбою и станет причиной ошибки, которую вы видите, это то, что путь к интерпретатору, указанный в исполняемом файле (используйте readelf), не существует.

Другие вопросы по тегам