как скомпилировать, настроить и сделать библиотеку .so как совместно используемую в Linux

Я новичок в Linux, компилирующей общедоступную библиотеку с открытым исходным кодом.

После того, как я скачал, скажем, gTest от Google, я распаковал папку.

cd gtest.x.x.x

затем

configure

тогда я сделал,

make all

куча компиляций, потом ожидается связывание, я прав?

а затем после make all закончилась, я проверил lib папка, чтобы просто найти

libgtest.la а также libgtest_main.la

  1. мои ожидания на месте, или я что-то упустил?
  2. после хорошей или успешной компиляции библиотека должна быть помещена в папку lib, не так ли?
  3. что мне теперь делать, и как узнать, что я сделал не так?

Я должен ожидать .so файл, НЕ .la

Редактировать,
когда я делаю make install, я получаю следующий вывод:
'make install' is dangerous and not supported.

0

Решение

Объекты * .la также являются библиотеками, поэтому вы можете найти их в папке lib. Но они не являются общими. * .so (так расшифровывается как Shared Object).

Когда вы запускаете правило все (сделать все) или просто сделать. Вы заказываете на делать команда, которая запускает все правила, которые записаны в Makefile файл.

В этом файле (есть и другие, такие как CMakeList и т. Д.), Где разработчики пишут (среди прочего), как должна компилироваться и ссылаться программа / библиотека. Итак, если Makefile, по умолчанию компилировать библиотеки gTest как статический (Я думаю, что это так) вы не найдете * .so.

Попробуйте добавить флаг —shared при сборке библиотек. Также вы должны прочитать некоторую информацию о gTest и выяснить, так ли это авторы называют по конкретной причине.

1

Другие решения

поля библиотеки, которые содержат файлы .sc и т. д. находятся в скрытой папке внутри папки lib.

после того, как сделать все идти по следующему пути

libraryProject/lib/.lib

внутри папки lib есть скрытая папка lib.

gtest/lib/.lin/libName.so

1