Компиляция с неосновным libc,(например, eglibc,uClibc)
Я работаю во встроенной среде. У меня есть кросс-компилятор для архитектуры ARM с eglibc
так как это первичная библиотека (т.е. по умолчанию libc
приходит вместе с цепочкой инструментов). Теперь я хочу связать некоторые приложения с uClibc
, Поэтому я скомпилировал uClibc
с этой цепочкой инструментов. Теперь, пытаясь скомпилировать и связать приложение с uClibc
есть ошибка. Он становится связанным с библиотекой инструментов по умолчанию. Я думаю, что возможно иметь два разных libcs на одной машине (например, libc, uClibc).
Я искал в сети и пришел со следующим
Несколько библиотек glibc на одном хосте
Как и предполагалось, я сделал следующее
$arm-unknown-linux-gnueabi-gcc -c test.c -o TEST $arm-linux-gnueabi-gcc TEST -o dynamic_test_with_new_opts -Wl,rpath=/home/user/UCLIBC/uClibc-0.9.32.1/INSTALL-DIR/usr/arm-linux-uclibc/lib -Wl,-dynamic-linker=/home/user/UCLIBC/uClibc-0.9.32.1/INSTALL-DIR/usr/arm-linux-uclibc/lib/ld-uClibc.so.0
В этом случае он становится связанным со значением по умолчанию
libc.so.6
изeglibc
Как сделать ссылку на другой файл libc?
Как видно из приведенной выше ссылки, я даже попробовал следующее:
$arm-unknown-linux-gnueabi-gcc -Xlinker -rpath=/home/user/UCLIBC/uClibc-0.9.32.1/INSTALL-DIR/usr/arm-linux-uclibc/lib -Xlinker -I/home/user/UCLIBC/uClibc-0.9.32.1/INSTALL-DIR/usr/arm-linux-uclibc/lib/ld-uClibc-0.9.32.1.so test.c -o dynamic_test_with_linker_options
И в этом случае он становится связанным со значением по умолчанию
libc.so.6
изeglibc
Куда я иду не так? Я действительно застрял в этом. Может кто-нибудь, пожалуйста, пролить свет?
1 ответ
Я думаю, вам нужно перестроить компилятор. Компилятор должен быть настроен иначе, чтобы использовать uClibc.