У меня есть проект C ++, который я упаковываю для Debian. Я использую чистые виртуальные классы C ++ и считаю, что это способствует dpkg-shlibdeps
не узнать о зависимостях правильно.
У меня есть две библиотеки libA
а также libB
построен как отдельные пакеты Debian. В CMake libB
построен с указанием зависимости от libA
, что правильно. Тем не менее, я получаю следующие предупреждения при сборке пакетов:
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/libB/usr/lib/libB.so.1.0.0 was not linked against libA.so.1 (it uses none of the library's symbols)
Я подозреваю, что проблема в том, что с libB
использования libA
через чистый виртуальный заголовок класса C ++, что он не находит символ для конкретной реализации класса в libA
и затем приходит к выводу, что никакой зависимости на самом деле не существует.
Мне интересно, какие шаги я должен предпринять, чтобы устранить это предупреждение?
Я мог представить, что существуют решения на уровне пакетов Debian, на уровне сборки CMake или, возможно, на уровне кода.
Задача ещё не решена.
Других решений пока нет …