При условии распространения linux системный менеджер пакетов обычно предоставляет пакеты времени выполнения и пакеты разработки. Если вы установили пакет разработки для библиотеки (например, libFOO-dev), он обычно включает следующие три файла в ваш / usr / lib или / usr / local / lib
libFOO.so.3.2.0 (the versioned binary)
libFOO.so.3 (soname = symlink to versioned binary)
libFOO.so (namelink = symlink to soname)
Ссылка на имя имеет нет сведений о версии в имени файла. Это будет использоваться для поиска библиотеки по параметру командной строки компоновщика, например, -lFOO
Вы должны использовать именную ссылку (например, FOO) в команде find_library cmake.
Компоновщик вставит soname файл в ваш двоичный файл.
Если у вас установлено несколько версий библиотеки, обязательно сделайте символическую ссылку на файл namelink на файл soname, который вы хотите использовать. Это действительно проблема, только если у вас установлено несколько основных версий одной и той же библиотеки. В основной версии API должны быть обратно совместимы.