The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
есть ли общий способ собрать пакет статически, !*! resu, 22-Фев-06, 18:51  [смотреть все]
есть ли общий способ собрать пакет статически,
или еще лучше любому динамически собранному файлу сказать, чтоб он пособирал все необходимые ему библиотеки в один файл.
а то что ни пакет так новые заморочки:
- у одних достаточно: LDFLAGS="-static",  как об етом говорит ld --help
- другим надо в  libtool разковырать строки -mode=link -static
- а с третьими вовсе наверно не катит как тут:
https://www.opennet.ru/openforum/vsluhforumID9/3949.html

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

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

  • есть ли общий способ собрать пакет статически, !*! Wulf, 18:00 , 23-Фев-06 (2)

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

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

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

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

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

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


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

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

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

      • есть ли общий способ собрать пакет статически, !*! Wulf, 14:05 , 24-Фев-06 (5)
        Вредно постить непохмеленным. Анонимом, почему-то, становишся. Наверное, от этого куки в браузере дезинтегрируются.
        • есть ли общий способ собрать пакет статически, !*! Resu, 18:50 , 24-Фев-06 (6)
          >Вредно постить непохмеленным.
          в любом случае спасибо

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

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

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

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

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

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




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

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