Я новичок в Linux, компилирующей общедоступную библиотеку с открытым исходным кодом.
После того, как я скачал, скажем, gTest от Google, я распаковал папку.
cd gtest.x.x.x
затем
configure
тогда я сделал,
make all
куча компиляций, потом ожидается связывание, я прав?
а затем после make all
закончилась, я проверил lib
папка, чтобы просто найти
libgtest.la
а также libgtest_main.la
Я должен ожидать .so
файл, НЕ .la
Редактировать,
когда я делаю make install, я получаю следующий вывод:
'make install' is dangerous and not supported.
Объекты * .la также являются библиотеками, поэтому вы можете найти их в папке lib. Но они не являются общими. * .so (так расшифровывается как Shared Object).
Когда вы запускаете правило все (сделать все) или просто сделать. Вы заказываете на делать команда, которая запускает все правила, которые записаны в Makefile файл.
В этом файле (есть и другие, такие как CMakeList и т. Д.), Где разработчики пишут (среди прочего), как должна компилироваться и ссылаться программа / библиотека. Итак, если Makefile, по умолчанию компилировать библиотеки gTest как статический (Я думаю, что это так) вы не найдете * .so.
Попробуйте добавить флаг —shared при сборке библиотек. Также вы должны прочитать некоторую информацию о gTest и выяснить, так ли это авторы называют по конкретной причине.
поля библиотеки, которые содержат файлы .sc и т. д. находятся в скрытой папке внутри папки lib.
после того, как сделать все идти по следующему пути
libraryProject/lib/.lib
внутри папки lib есть скрытая папка lib.
gtest/lib/.lin/libName.so