Как избежать наличия номеров версий в имени файла .so

Я пытаюсь создать динамическую библиотеку в Linux с помощью qmake. Вот мой файл .pro:

TEMPLATE = lib
TARGET = sqxUiBase
QT += core gui   
CONFIG += dll    
INCLUDEPATH += ../../public/include   
DEPENDPATH += .
UI_DIR += ../GeneratedFiles    
RCC_DIR += ../GeneratedFiles   
CONFIG(release, debug|release) {
    DESTDIR = ../lib/release
    LIBS += -L"../lib/release"
    MOC_DIR += ../GeneratedFiles/release
    OBJECTS_DIR += release
} else {    
    DESTDIR = ../lib/debug
    LIBS += -L"../lib/debug"
    MOC_DIR += ../GeneratedFiles/debug
    OBJECTS_DIR += debug
} 

include(sqxUiBase.pri)

Файл sqxUiBase.pri содержит список файлов, которые необходимо построить.

Теперь проблема в том, что что бы я ни делал, результирующий файл всегда называется sqxUiBase.so.1.0.0 с кучей символических ссылок (sqxUiBase.so, sqxUiBase.so.1 и sqxUiBase.so.1.0), указывающих на него. Как сделать так, чтобы был только файл sqxUiBase.so и никаких ссылок?


person Etienne de Martel    schedule 20.09.2010    source источник
comment
Пожалуйста, не пишите теги в заголовках. Спасибо, мимо Этьен!   -  person Lightness Races in Orbit    schedule 22.01.2015
comment
В 2010 году это не было правилом ;)   -  person Etienne de Martel    schedule 22.01.2015
comment
Мех, это всегда было глупо из-за существования системы тегов!!   -  person Lightness Races in Orbit    schedule 22.01.2015


Ответы (2)


То, что вы ищете, это создание plugin.

Добавьте CONFIG += plugin в файл вашего проекта, и qmake сгенерирует Makefile, который создаст файл libFoo.so без нумерованных ссылок.

person Fred    schedule 20.09.2010
comment
В качестве дополнительной опции вы можете указать пустой номер версии в файле .pro с VERSION= (без кавычек). Я могу только засвидетельствовать, что он работает под Windows. - person Arnold Spence; 21.09.2010

Посмотрев исходный код qmake, я нашел CONFIG += unversioned_libname для nix и CONFIG += skip_target_version_ext для windows.

person EvilTK    schedule 22.01.2015
comment
Это патч, который представил unversioned_libname github.com/osmandapp/OsmAnd-external-qtbase /коммит/ . Работает начиная с qt 5.3 - person Temak; 01.07.2015
comment
Вам также понадобится CONFIG += unversioned_soname, чтобы при связывании он не искал foo.so.1. - person opello; 08.08.2018