Разделяемые библиотеки в Linux
От: Hipson  
Дата: 16.03.09 15:18
Оценка:
Мне нужна статически собранная программа. При подключении одного инклюда (конкретно pwd.h) компилятор предупреждает, что статически собираемое приложение потребует разделяемые библиотеки из glibc той же версии — имён не указывает. Как узнать их имена, чтоб подключить? Или как вообще это решить?
Re: Разделяемые библиотеки в Linux
От: zaufi Земля  
Дата: 16.03.09 17:17
Оценка:
Здравствуйте, Hipson, Вы писали:

H>Мне нужна статически собранная программа. При подключении одного инклюда (конкретно pwd.h) компилятор предупреждает, что статически собираемое приложение потребует разделяемые библиотеки из glibc той же версии — имён не указывает. Как узнать их имена, чтоб подключить? Или как вообще это решить?


ну навскиду вот мона прогрепать вывод `nm` над *.so на предмет нужного символа...
Re[2]: Разделяемые библиотеки в Linux
От: zaufi Земля  
Дата: 16.03.09 17:20
Оценка:
Здравствуйте, zaufi, Вы писали:

Z>Здравствуйте, Hipson, Вы писали:


H>>Мне нужна статически собранная программа. При подключении одного инклюда (конкретно pwd.h) компилятор предупреждает, что статически собираемое приложение потребует разделяемые библиотеки из glibc той же версии — имён не указывает. Как узнать их имена, чтоб подключить? Или как вообще это решить?


Z>ну навскиду вот мона прогрепать вывод `nm` над *.so на предмет нужного символа...

а вообще луче навернае libtool пользовать -- он добавить нужные библы для линковки
--
зы: чего за символ то?
Re: Разделяемые библиотеки в Linux
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 16.03.09 20:33
Оценка:
Здравствуйте, Hipson, Вы писали:

H>Мне нужна статически собранная программа. При подключении одного инклюда (конкретно pwd.h) компилятор предупреждает, что статически собираемое приложение потребует разделяемые библиотеки из glibc той же версии — имён не указывает. Как узнать их имена, чтоб подключить? Или как вообще это решить?


Запомните раз и надолго: с glibc статическая сборка невозможна. (Разве что Вы решите вручную впихнуть внутрь нёе все модули, которые подтягиваются динамически... ну что ж, напильник в руки и человеко-месяц в минус, причём непереносимо на следующую версию.)

Хотите статики? Для этого специально придумана DIET libc. Стяните и цепляйте. Ну а если чего-то не будет в составе — ну извините, на то она и диетическая...

Вот пример с hello world (платформа AltLinux 5.0):

netch@tsd:~/tmp>>
$ cat 1.c
#include <stdio.h>

int main() {
printf("Hello world!\n");
return 0;
}
netch@tsd:~/tmp>>
$ diet gcc -o 1 1.c
netch@tsd:~/tmp>>
$ file 1
1: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped
netch@tsd:~/tmp>>
$ ls -l 1
-rwxr-xr-x 1 netch netch 6834 Mar 16 22:32 1
netch@tsd:~/tmp>>


По-моему, 6K для сборки с stdio — очень даже неплохо:))
The God is real, unless declared integer.
Re[2]: Разделяемые библиотеки в Linux
От: Pzz Россия https://github.com/alexpevzner
Дата: 17.03.09 19:15
Оценка: +1
Здравствуйте, netch80, Вы писали:

N>Хотите статики? Для этого специально придумана DIET libc. Стяните и цепляйте. Ну а если чего-то не будет в составе — ну извините, на то она и диетическая...


А почему не uClibc? Она хоть довольно неплохо обкатана во всяких там роутерах/точках доступа.
Re[3]: Разделяемые библиотеки в Linux
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 17.03.09 22:30
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, netch80, Вы писали:


N>>Хотите статики? Для этого специально придумана DIET libc. Стяните и цепляйте. Ну а если чего-то не будет в составе — ну извините, на то она и диетическая...


Pzz>А почему не uClibc? Она хоть довольно неплохо обкатана во всяких там роутерах/точках доступа.


Я не против;), но сам с ней не сталкивался.
The God is real, unless declared integer.
Re[4]: Разделяемые библиотеки в Linux
От: Pzz Россия https://github.com/alexpevzner
Дата: 17.03.09 23:43
Оценка:
Здравствуйте, netch80, Вы писали:

Pzz>>А почему не uClibc? Она хоть довольно неплохо обкатана во всяких там роутерах/точках доступа.


N>Я не против, но сам с ней не сталкивался.


Я с ней поработал некоторое время (на ARM'е), и она произвела на меня хорошее впечатление. Я у ней даже в списке контрибуторов отметился, починив какую-то фигню
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.