2010-09-20 18 views
11

olması nasıl önlenir? Linux üzerinde qmake kullanarak dinamik bir kitaplık oluşturmaya çalışıyorum.Sürüm numaralarının, .so dosya adı

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 dosya oluşturulacak gereken dosyaların listesini içerir: İşte benim .pro dosyasıdır.

Şimdi, sorun ben ne yaparsak, sonuç dosyası her zaman işaret eden sembolik bağlar bir demet (sqxUiBase.so, sqxUiBase.so.1 ve sqxUiBase.so.1.0) ile, sqxUiBase.so.1.0.0 adlı olmasıdır. Sadece sqxUiBase.so dosya ve bağlantı yok diye nasıl yapabilirim?

+0

Lütfen etiketleri başlıklara yazmayın. Teşekkürler, geçmiş Etienne! –

+0

Bir kural değildi 2010 yılında geri;) –

+0

Meh, her zaman saçma sistemi, etiket sisteminin varlığı nedeniyle oldu! –

cevap

16

Aradığınız ürün plugin yapıyor.

proje dosyasına CONFIG += plugin ekleyin ve qmake ben pencereler için nix için CONFIG += unversioned_libname ve CONFIG += skip_target_version_ext bulundu qmake kaynağında baktıktan sonra numaralandırılmış linkleri

+0

Teşekkürler! Bu brillantly çalıştı. –

+3

Ek bir seçenek olarak, .pro dosyasında "VERSION =" (tırnak işareti olmadan) bulunan boş bir sürüm numarası belirtebilirsiniz. Sadece Windows altında çalışmayı onaylayabilirim. –

+0

"VERSION =" linux üzerinde çalışmıyor, qt5 – Temak

5

olmadan libFoo.so dosya oluşturur bir Makefile, üretecektir.

+0

Bu "unversioned_libname" https://github.com/osmandapp/OsmAnd-external-qtbase/commit/a162a3cbbc3c27b42c86f870aba051a408f04ed4'ü tanıtan bir yama. qt 5.3'ten başlayarak çalışır – Temak