Программа, скомпилированная с помощью glibc, может работать в Linux с uClibc?
У меня есть программа, скомпилированная с использованием glibc, и мне нужно, чтобы она работала на цели MIPS с прошивкой Openwrt с использованием uClibc. Это возможно? Я помещаю программу в Openwrt, и когда я пытаюсь запустить ее, результат: не найден.
В чем проблема?
Спасибо.
2 ответа
uClibc совместим только с API, но не совместим с ABI с glibc.
Вы должны заново скомпилировать приложение. Для этого (по крайней мере, до тех пор, пока вы не узнаете подробности, происходящие за кулисами), я рекомендую использовать сборочный корень openwrt (в основном потому, что различия между библиотеками приводят к нескольким несовместимостям). Все, что вам нужно, это набор инструментов.
Кстати, документация может быть сильно устаревшей, если вы чувствуете, что что-то не так, обратитесь к документации по сборке рута uClibc.
Более конкретно, первое место, которое, скорее всего, приведет к сбою и станет причиной ошибки, которую вы видите, это то, что путь к интерпретатору, указанный в исполняемом файле (используйте readelf), не существует.