2010-09-20 15 views
11

J'essaye de construire une bibliothèque dynamique sous Linux en utilisant qmake. Voici mon fichier .pro:Comment éviter d'avoir les numéros de version dans le nom de fichier .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) 

Le fichier sqxUiBase.pri contient la liste des fichiers qui doivent être construits.

Maintenant, le problème est que tout ce que je fais, le fichier résultant est toujours nommé sqxUiBase.so.1.0.0, avec un tas de liens symboliques (sqxUiBase.so, sqxUiBase.so.1 et sqxUiBase.so.1.0) pointant vers elle. Comment puis-je faire en sorte qu'il n'y ait qu'un fichier sqxUiBase.so et aucun lien?

+0

Veuillez ne pas écrire d'étiquettes dans les titres. Merci, passé Etienne! –

+0

Retour en 2010 ce n'était pas une règle;) –

+0

Meh, c'était toujours bête, en raison de l'existence du système de balises !! –

Répondre

16

Ce que vous cherchez est plugin.

Ajouter CONFIG += plugin à votre fichier de projet, et qmake générer un Makefile qui construit un fichier libFoo.so, sans les liens numérotés

+0

Merci! Cela a fonctionné brillamment. –

+3

En option supplémentaire, vous pouvez spécifier un numéro de version vide dans le fichier .pro avec "VERSION =" (sans les guillemets). Je peux seulement en témoigner travailler sous Windows. –

+0

"VERSION =" ne fonctionne pas sous Linux, qt5 – Temak

5

Après avoir regardé la source qmake j'ai trouvé CONFIG += unversioned_libname Nix et CONFIG += skip_target_version_ext pour les fenêtres.

+0

Ceci est le correctif qui a introduit 'unversioned_libname' https://github.com/osmandapp/OsmAnd-external-qtbase/commit/a162a3cbbc3c27b42c86f870aba051a408f04ed4. Cela fonctionne à partir de qt 5.3 – Temak