Итак, после того, как я запустил libtool и вытащил файл libfoo.lo
и foo.o
из моего источника библиотеки, как мне преобразовать файл libfoo.lo
в обычную библиотеку Linux, такую как libfoo.so.1.0.0
, чтобы я мог установить и связать ее с моей целевой системой?Как установить и использовать общую библиотеку libtool (файлы .lo)?
ответ
Из выходов, упомянутых в вопросе, похоже, что вы запустили libtool с --mode = режим компиляции. Вам нужно будет запустить libtool снова с помощью -mode = link для создания библиотек .a и .so.
libtool - просто простая оболочка для gcc, ln ar и ranlib, которая необходима для создания библиотек. Все, что он делает, - это запустить gcc, добавив необходимые параметры, чтобы убедиться, что ваши статические и общие библиотеки созданы правильно.
При компиляции libtool вставляет тег -fPIC, чтобы обеспечить необходимое генерирование независимого от позиции кода, необходимого для разделяемых библиотек. Файлы .o являются обычными объектными файлами, которые могут быть заархивированы в статический файл .a. Файлы .lo - это объектные файлы с независимым от положения кодом, который теперь можно связать с .so-файлом.
При связывании libtool будет запускаться ar для создания статической библиотеки или ln для связывания файлов объектов с разделяемой библиотекой .so.
libtool также может установить библиотеку при необходимости с помощью команды -mode = install.
См. http://www.gnu.org/software/libtool/manual/libtool.html для получения дополнительной информации.
Помните, что при создании исполняемого файла всегда есть две стадии, компиляция и компоновка.
- 1. libtool не создает общую библиотеку
- 2. Создайте статическую и общую библиотеку с помощью GNU libtool?
- 3. Как получить библиотеку, созданную libtool?
- 4. Как libtool решает создать общую библиотеку или нет?
- 5. создать и использовать общую библиотеку с qt
- 6. libtool, не загружающий библиотеку
- 7. Включить файлы заголовков во встроенную общую библиотеку
- 8. Использование libtool для связи с библиотеками не-libtool
- 9. Как использовать весенний ботинок, создающий общую библиотеку
- 10. Как использовать общую библиотеку через G ++?
- 11. Как использовать общую библиотеку в native-activity
- 12. Невозможно установить библиотеку Libtool, но `LIBTOOL 'не определен, пытаясь установить ffmpeg
- 13. Ссылка на общую библиотеку в AIX
- 14. Сделать статическую библиотеку libtool без исходных файлов
- 15. Могу ли я установить общую импортированную библиотеку?
- 16. Как создать общую библиотеку с cmake?
- 17. Как создать и использовать автономную общую библиотеку с gcc?
- 18. libtool не генерировал файл lo, когда все есть
- 19. перестраивает потому ненужный .lo файлы не найдены
- 20. здания и связать общую библиотеку
- 21. Использовать сборную общую библиотеку в Android AOSP
- 22. % ENV не работает, и я не могу использовать общую библиотеку
- 23. Компилировать общую библиотеку статически
- 24. Как создать автономную общую библиотеку
- 25. gdb: Как отлаживать общую библиотеку
- 26. Как создать общую библиотеку MuPDF?
- 27. Загрузить общую библиотеку, которая использует другую общую библиотеку
- 28. Невозможно сделать libtool включенными объектами-объектами, созданными ясными
- 29. Ищет отсутствующую общую библиотеку
- 30. Как скомпилировать libusb как общую библиотеку?
'libtool --mode = finish' также необходимо использовать для« завершения установки библиотек libtool »для некоторых систем. Просто компилировать/link/install недостаточно. – dajobe