У меня есть проект на c ++ (g ++ / raw Makefile), предназначенный для Linux, я статически связывал все, что хорошо работало целую вечность. Теперь я хочу создать двоичные файлы, как статически, так и динамически связанные. Следующая команда используется в моем Makefile для сборки динамической библиотеки (скажем, libtest):
$ (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.
Вот мой вопрос: если я хочу создать свое программное обеспечение, каков стандартный способ управления вышеуказанной символической ссылкой? Ясно, что я не хочу, чтобы этот дополнительный материал был в моем исходном каталоге, но он необходим для сборки моего двоичного файла клиента. Должен ли я создать его как временную ссылку для сборки клиента, а затем просто удалить его, когда закончите? или я должен создать каталог для размещения библиотеки generate .so и ее ссылок и оставить все там, пока я не выполню "make install", чтобы установить их в другие указанные каталоги? Будет круто сейчас, что является стандартным способом сделать это.
Или, может быть, неправильный способ создания библиотек? мне просто сгенерировать libtest.so (как настоящую библиотеку, а не ссылку), чтобы связать мой исполняемый файл, затем переименовать библиотеку и создать эти ссылки при выполнении `` make install ''?
Любой вклад будет оценен. :)