У меня есть проект C++ (g ++/raw Makefile), предназначенный для linux, я использовал для статической привязки всего, что отлично работало целую вечность. Теперь я хочу создать двоичные файлы как статически, так и динамически связанные. Следующая команда используется в моем Makefile для создания динамической библиотеки (например, libtest):Как использовать мою собственную динамическую библиотеку в linux (Makefile)
$ (CXX) -shared -Wl, -soname, libtest.so.1 -o libtest.so.1.0.0 $ (LIBTEST_OBJS)
выход libtest.so.1.0.0 который имеет так называют libtest.so.1
я нашел по крайней мере символической ссылки libtest.so -> libtest.so.1.0.0 требуется связать мою клиентскую программу, которая фактически использует созданную выше библиотеку libtest.so.1.0.0.
Здесь мой вопрос, хочу ли я создать свое программное обеспечение, каков стандартный способ управления вышеупомянутой символической ссылкой? Ясно, что я не хочу этого лишнего материала в моем исходном каталоге, но мне нужно построить мой клиентский двоичный файл, я должен создать его как временную ссылку для создания клиента, а затем просто удалить его, когда это будет сделано? или я должен создать каталог для размещения библиотеки .soso и его ссылок и оставить все там, пока я не «сделаю установку», чтобы установить их в другие указанные каталоги? Будет здорово, каков стандартный способ сделать это.
Или, может быть, неправильный способ генерации библиотек? должен ли я просто генерировать libtest.so (как фактическую библиотеку, а не ссылку), чтобы связать мой исполняемый файл, а затем переименовать библиотеку и создать эти ссылки при выполнении `` make install ''?
любой ввод будет оценен. :)
+1 Использование libtool упростит, когда вы в конечном итоге решите перенести его из Linux на что-то еще - libtool обрабатывает все зависящие от платформы проблемы разделяемых библиотек. –