2013-12-20 4 views
-1

Я новичок в 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' is dangerous and not supported.

+0

просьба указать полный путь, так как множество/Lib библиотеки могут существовать – hetepeperfan

+0

также 'сделать install' в качестве корня устанавливает библиотеку и не забудьте запустить' ldconfig' также как корень, если вы не корень вы можете использовать переменную LD_LIBRARY_PATH, чтобы указать, где находятся ваши библиотеки. Кроме того, './configure --help' может предоставить выходные данные с дополнительными параметрами конфигурации. – hetepeperfan

+0

прочитал readme GTest за помощью. Вы также можете рассмотреть использование cmake, которое AFAIR может быть более удобным для пользователя. В любом случае, из моего опыта работы с GTest, используя библиотеки .a, лучше понять, что использование .so –

ответ

0

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

после макияжа все идут по следующему пути

libraryProject/lib/.lib

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

gtest/lib/.lin/libName.so

1

* .la объекты библиотеки тоже, именно поэтому вы можете найти их в папке lib. Но они не разделяются. * .so (так значит для общего объекта).

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^