Мне нужна статически собранная программа. При подключении одного инклюда (конкретно pwd.h) компилятор предупреждает, что статически собираемое приложение потребует разделяемые библиотеки из glibc той же версии — имён не указывает. Как узнать их имена, чтоб подключить? Или как вообще это решить?
Здравствуйте, Hipson, Вы писали:
H>Мне нужна статически собранная программа. При подключении одного инклюда (конкретно pwd.h) компилятор предупреждает, что статически собираемое приложение потребует разделяемые библиотеки из glibc той же версии — имён не указывает. Как узнать их имена, чтоб подключить? Или как вообще это решить?
ну навскиду вот мона прогрепать вывод `nm` над *.so на предмет нужного символа...
Здравствуйте, zaufi, Вы писали:
Z>Здравствуйте, Hipson, Вы писали:
H>>Мне нужна статически собранная программа. При подключении одного инклюда (конкретно pwd.h) компилятор предупреждает, что статически собираемое приложение потребует разделяемые библиотеки из glibc той же версии — имён не указывает. Как узнать их имена, чтоб подключить? Или как вообще это решить?
Z>ну навскиду вот мона прогрепать вывод `nm` над *.so на предмет нужного символа...
а вообще луче навернае libtool пользовать -- он добавить нужные библы для линковки
--
зы: чего за символ то?
Здравствуйте, 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 — очень даже неплохо:))
Здравствуйте, netch80, Вы писали:
N>Хотите статики? Для этого специально придумана DIET libc. Стяните и цепляйте. Ну а если чего-то не будет в составе — ну извините, на то она и диетическая...
А почему не uClibc? Она хоть довольно неплохо обкатана во всяких там роутерах/точках доступа.
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, netch80, Вы писали:
N>>Хотите статики? Для этого специально придумана DIET libc. Стяните и цепляйте. Ну а если чего-то не будет в составе — ну извините, на то она и диетическая...
Pzz>А почему не uClibc? Она хоть довольно неплохо обкатана во всяких там роутерах/точках доступа.
Здравствуйте, netch80, Вы писали:
Pzz>>А почему не uClibc? Она хоть довольно неплохо обкатана во всяких там роутерах/точках доступа.
N>Я не против, но сам с ней не сталкивался.
Я с ней поработал некоторое время (на ARM'е), и она произвела на меня хорошее впечатление. Я у ней даже в списке контрибуторов отметился, починив какую-то фигню