Я работаю во встроенной среде.У меня есть кросс-компилятор для архитектуры 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
Куда я иду не так?Я действительно застрял в этом.Может кто-нибудь, пожалуйста, пролить свет?