Приложение Linux - минимизируйте зависимости - PullRequest
2 голосов
/ 05 февраля 2010

Я пытаюсь минимизировать зависимости, вызванные разделяемой библиотекой mysql ++. Я знаю, это звучит странно; но я изо всех сил пытаюсь решить ограничение платформы на Slamd64 (с 32-битной установленной совместимостью), где у него изначально нет определенных библиотек. Я нахожусь в ситуации, когда я не могу изменить настройки libmysqlclient из-за зависимостей от других приложений.

Инструкции по статической привязке библиотеки mysql ++ к ее зависимостям, вот что я пытаюсь сделать. НЕ пытаюсь статически связать мое приложение с mysql ++; Я все еще хочу динамически связываться с MySQL ++.

1 Ответ

2 голосов
/ 07 февраля 2010

Это не очень легко. Вам нужно будет

  1. получить список библиотек .a, которые необходимы для распространения (не добавляйте сюда системные библиотеки, например libc.a)
  2. компилировать все .a статически, но с включенной -fPIC
  3. свяжите все .a в один .so
  4. проверьте, можете ли вы добавить этот .so и загрузить его в приложение

Возможен обходной путь с использованием ENV LD_LIBRARY_PATH и LD_PRELOAD. Они могут помочь вам замаскировать общесистемную библиотеку и указать приложение для ваших библиотек. Просто Google для этой переменной.

...