2010-09-20 8 views
11

Próbuję utworzyć bibliotekę dynamiczną w systemie Linux przy użyciu programu qmake. Oto moja .pro file:Jak uniknąć numerów wersji w pliku o rozszerzeniu .so

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) 

Plik sqxUiBase.pri zawiera listę plików, które muszą być budowane.

Teraz problemem jest to, że cokolwiek robię, plik wynikowy jest zawsze nazwany sqxUiBase.so.1.0.0, z gronem dowiązania (sqxUiBase.so, sqxUiBase.so.1 i sqxUiBase.so.1.0) skierowaną do niego. Jak mogę to zrobić, aby był tylko plik sqxUiBase.so i brak linków?

+0

Proszę nie pisać znaczników w tytułach. Dzięki, za Etienne! –

+0

Powrót w 2010 roku, który nie był regułą;) –

+0

Meh, to zawsze było głupie, ze względu na istnienie systemu tagów !! –

Odpowiedz

16

To, czego szukasz, to plugin.

Dodaj CONFIG += plugin do pliku projektu i QMake wygeneruje Makefile, które buduje plik libFoo.so bez ponumerowanych linki

+0

Dzięki! To działało znakomicie. –

+3

Jako dodatkową opcję można podać pusty numer wersji w pliku .pro z "VERSION =" (bez cudzysłowów). Mogę tylko potwierdzić, że działa pod Windows. –

+0

"VERSION =" nie działa na Linuksie, qt5 – Temak

5

Po patrząc na źródło QMake znalazłem CONFIG += unversioned_libname dla nix i CONFIG += skip_target_version_ext do okien.

+0

To jest łata która wprowadziła 'unversioned_libname' https://github.com/osmandapp/OsmAnd-external-qtbase/commit/a162a3cbbc3c27b42c86f870aba051a408f04ed4. Działa od qt 5.3 – Temak

Powiązane problemy