У меня есть проект, настроенный таким образом, что, если я делаю сборку релиза, я получаю библиотеки с именами, например libhello.so
, а если это отладочная сборка, я получаю имена, подобные libhellod.so
- обратите внимание на d
в конце имени.
Поэтому, когда я компилирую и связываю приложение / исполняемый файл, я делаю что-то вроде:
gcc -g -o myapp obj1 obj2 obj3 -lhellod
Где я здесь связываю его с библиотекой отладки.Теперь я могу развернуть это приложение с его библиотекой:
замечательно, но затем мы решаем, что хотимсоздайте выпускную версию hello lib и разверните ее вместе с приложением вместо отладочной версии.Теперь он жалуется, что не может найти библиотеку с именем hellod
.Итак, я могу просто сделать символическую ссылку:
myapp
libhello.so
libhellod.so -> libhello.so
Этотакже работает.
Можно ли как-нибудь связать мой исполняемый файл так, чтобы он нашел либо libhello.so
, либо libhellod.so
(без использования символических ссылок)?- или символические ссылки - единственный способ достичь этого?или мой дизайн просто глупый?!