У меня есть проект 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 и ее ссылок и оставить все там, пока я не сделаю «установить», чтобы установить их в другие указанные каталоги? Теперь будет круто, как это сделать стандартным способом.
Или, может быть, способ, которым я генерирую библиотеки, неверен? Должен ли я просто сгенерировать libtest.so (как настоящую библиотеку, а не ссылку), чтобы связать мой исполняемый файл, затем переименовать библиотеку и создать эти ссылки при выполнении ``make install''?
любой вклад будет оценен. :)