Компиляция с неосновным libc, (например, eglibc, uClibc) - PullRequest
3 голосов
/ 16 марта 2012

Я работаю во встроенной среде.У меня есть кросс-компилятор для архитектуры ARM с eglibc в качестве основной библиотеки (то есть по умолчанию libc вместе с цепочкой инструментов).Теперь я хочу связать некоторые приложения с uClibc.Поэтому я скомпилировал uClibc с этой цепочкой инструментов.Теперь при попытке скомпилировать и связать приложение с uClibc возникает ошибка.Он становится связанным с библиотекой инструментов по умолчанию.Я думаю, что возможно иметь два разных libcs ​​на одном компьютере (например, libc, uClibc).

Я искал в сети и получил следующее

  1. Несколько библиотек 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

  2. Как создать ссылку на другой файл 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 Ответ

2 голосов
/ 19 марта 2012

Вам нужно пересобрать компилятор для этого, я думаю. Компилятор должен быть настроен иначе, чтобы использовать uClibc.

...