как вам превратить файл .la в общий файл lib для конкретной платформы, например libfoo.la -> libfoo.so. *
theactiveactor
6
Вы не можете libfoo.la содержит только метаинформацию, т.е. в libfoo.la (текстовом файле), написанном где вы должны найти libfoo.so.xyz
Артём
4
Означает ли это, что для создания файла .la мне нужно использовать libtool (например, из automake)? Можно libtoolссылаться на объектные файлы ( gnu.org/software/libtool/manual/html_node/Using-Automake.html ), но если я хочу распространять библиотеку без .la, значит ли это, что будет очень трудно связать с его помощью Cygwin или Mingw?
dma_k
Если кто-то захочет отключить эту версию, вы можете использовать -avoid-version в своих _la_LDFLAGS вместо -version-info
В идеальном мире каждая статическая библиотека, нуждающаяся в зависимостях, имела бы свой собственный файл .pc для pkg-config, и каждый пакет, пытающийся статически связать эту библиотеку, использовал бы pkg-config --static для получения библиотек для ссылки.
Резюме (как я понял): поскольку libtool внутренне обрабатывает статические и динамические библиотеки (через --diable-shared или --disable-static), он создает оболочку для файлов библиотеки, которые он создает. Они рассматриваются как двоичные файлы библиотеки в среде, поддерживаемой libtool.
Ответы:
Это текстовый файл, который включает описание библиотеки.
Это позволяет
libtool
создавать независимые от платформы имена.Например,
libfoo
идет к:Под Linux:
Под Cygwin :
Под Windows MinGW:
Так
libfoo.la
что это единственный файл, который сохраняется между платформами,libtool
позволяя понять, что происходит с:Вне зависимости от конкретной платформы реализации библиотек.
источник
libtool
ссылаться на объектные файлы ( gnu.org/software/libtool/manual/html_node/Using-Automake.html ), но если я хочу распространять библиотеку без .la, значит ли это, что будет очень трудно связать с его помощью Cygwin или Mingw?Согласно http://blog.flameeyes.eu/2008/04/14/what-about-those-la-files , они необходимы для обработки зависимостей. Но использование pkg-config может быть лучшим вариантом:
источник
Я нашел очень хорошее объяснение о файлах .la здесь http://openbooks.sourceforge.net/books/wga/dealing-with-libraries.html
Резюме (как я понял): поскольку libtool внутренне обрабатывает статические и динамические библиотеки (через --diable-shared или --disable-static), он создает оболочку для файлов библиотеки, которые он создает. Они рассматриваются как двоичные файлы библиотеки в среде, поддерживаемой libtool.
источник