2015-04-13 9 views
1

После привыкания и комфорта до GNU autoconf и GNU automake. Я решил начать изучать libtool. Но все же я не вижу ясного понимания использования этого в реальном мире.Каково место libtool, когда его использовать?

Поскольку я читаю, что основным преимуществом является основная проблема переносимости, которая заключается в том, поддерживает ли система динамические библиотеки. Однако в настоящее время большинство из OS в основном GNU/Linux, BSD-flavors или Mac OS вряд ли можно встретить OS, который не поддерживает динамическую библиотеку или имеет стандарт нечетной библиотеки.

Итак, вот мой вопрос, стоит ли использовать libtool?

ответ

1

В качестве примера GNU ld и родной Mach-O ld от Darwin имеют очень разные варианты. libtool позаботится об этом, а также может использовать файлы .la для управления зависимостями, информацией о версии и т. д.

Рассмотрим систему сборки, которая создает DSO или модули, которые могут быть загружены и разрешены во время выполнения. libtool предоставляет независимые от платформы параметры для создания этих объектов и API ltdl для приложения.

+0

Как известно libtools, какие флаги должны быть активированы в каждой операционной системе? Вы указываете эту информацию в файле '.la'? –

+0

@ VicenteAdolfoBoleaSánchez - [libtool] (http://www.gnu.org/software/libtool/manual/libtool.html#Introduction) реализован как скрипт. Он обнаруживает ОС. –

+0

Я не был тем, о чем я просил, но я узнал о функции файлов '.la'. Спасибо за информацию! –

1

Да. Трудно написать make-файл для общей библиотеки, которая будет правильно построена, как в Linux, так и в Mac OS. С Libtool он работает из коробки.

+0

Можете ли вы дать какое-либо преимущество по сравнению с autoconf + RANLIB? –

+1

Если вы создаете статические библиотеки, runlib, вероятно, в порядке. Если вы создаете общие библиотеки или, особенно, модули плагинов, существует так много пользовательских вещей, которые вы должны делать на платформозависимом пути, даже в отличие от Unix, таких как Linux и Mac OS. – ptomato