The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"есть ли общий способ собрать пакет статически"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"есть ли общий способ собрать пакет статически"  
Сообщение от resu email(??) on 22-Фев-06, 18:51 
есть ли общий способ собрать пакет статически,
или еще лучше любому динамически собранному файлу сказать, чтоб он пособирал все необходимые ему библиотеки в один файл.
а то что ни пакет так новые заморочки:
- у одних достаточно: LDFLAGS="-static",  как об етом говорит ld --help
- другим надо в  libtool разковырать строки -mode=link -static
- а с третьими вовсе наверно не катит как тут:
http://www.opennet.ru/openforum/vsluhforumID9/3949.html

вот что делать когда ну надо и все!!!???

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "есть ли общий способ собрать пакет статически"  
Сообщение от vt (ok) on 23-Фев-06, 10:43 
>вот что делать когда ну надо и все!!!???
Есть один уникальный дистрибутив
Bent Linux: small simple distro, statically linked against uClibc
http://bent.latency.net/bent/
Можно посмотреть как автор это собирает,
а можно просто взять готовые пакеты

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "есть ли общий способ собрать пакет статически"  
Сообщение от Wulf on 23-Фев-06, 18:00 

>вот что делать когда ну надо и все!!!???

еще можно сделать "финт ушами" - удалить динамические версии либ перед линковкой.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "есть ли общий способ собрать пакет статически"  
Сообщение от resu email(??) on 23-Фев-06, 19:09 
> Есть один уникальный дистрибутив
> Bent Linux: small simple distro, statically linked against uClibc <http://bent.latency.net/bent>/
> Можно посмотреть как автор это собирает,

спасибо, про этот дистри я не знал.
посмотрел пару пакетов, но там было: LDFLAGS="-static"
а такое у меня прокатило далеко не со всеми пакетами. я еще эту тему поковыряю.

> еще можно сделать "финт ушами" - удалить динамические версии либ перед линковкой.

я думаю не перед линковкой, а перед configure, но это не выход, т.к. они нужны для других программ


а вот если бы можно было как-то пересобрать
готовый динамически слинкованый бинарник в новый статически слинкованый. вот это бы решило много проблемм.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "есть ли общий способ собрать пакет статически"  
Сообщение от Аноним on 24-Фев-06, 13:55 
>> еще можно сделать "финт ушами" - удалить динамические версии либ перед линковкой.
>
>я думаю не перед линковкой, а перед configure, но это не выход,
>т.к. они нужны для других программ
можно поступить творчески и просто переименовать их на время компиляции, а не совсем удалять :-)
В любом случае существует 2 способа:
1. подсунуть линковщику нужную опцию (-static для гнутых ld и cc) - требует ковыряния Makefile - что вам не понравилось.
2. Временно удалить некошерные версии библиотек. Вам тоже не понравилось.
Вам не угодишь :-)
>
>а вот если бы можно было как-то пересобрать
>готовый динамически слинкованый бинарник в новый статически слинкованый. вот это бы решило
>много проблемм.

Пересобирать - бессмысленно. Статические и динамические библиотеки компилируются с разными опциями (-FPIC), из-за этого такой процесс совершается с ними дважды, отдельно для статических и отдельно для динамических. Лучше поместить прогу с либами в отдельный каталог и для запуска использовать простейший shell-wrapper, который будет устанавливать LD_LIBRARY_PATH на нужную директорию с правильными либами.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

5. "есть ли общий способ собрать пакет статически"  
Сообщение от Wulf on 24-Фев-06, 14:05 
Вредно постить непохмеленным. Анонимом, почему-то, становишся. Наверное, от этого куки в браузере дезинтегрируются.
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

6. "есть ли общий способ собрать пакет статически"  
Сообщение от Resu email on 24-Фев-06, 18:50 
>Вредно постить непохмеленным.
в любом случае спасибо

>Пересобирать - бессмысленно. Статические и динамические библиотеки
>компилируются с разными опциями (-FPIC), из-за этого такой процесс
>совершается с ними дважды, отдельно для статических и отдельно для
>динамических.

а вот етого я не знал. думал, что компилятор всегда переводит .c в абсолютно стандартный .о, a вот линковщик (в зависимости от опций) подлкючает статику или динамику. спасибо

>Лучше поместить прогу с либами в отдельный каталог и для
>запуска использовать простейший shell-wrapper, который будет устанавливать
>LD_LIBRARY_PATH на нужную директорию с правильными либами.

пока что так и решил (точнее обошел) проблему, но как вы сказали: мне не угодишь.
просто хотел сделать лучше чем "как всегда".

ну а если по сути, то дело не в ковырянии файлов, а в отсутствии стандартного подхода по решению задачи (точнее не знании мной оного).
мне (возможно по незнанию) приходиться ковырять то Makefile то libtool, кому достаточно сказать LDFLAGS=-static перед configure, кому етого мало, а с иными проектами вообще никак не получается.

а было бы здорово если бы наряду со strip был бы некий инструмент
relink --static

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру