IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

QxOrm Discussion :

QxOrm et compilation statique


Sujet :

QxOrm

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 151
    Par défaut QxOrm et compilation statique
    Bonjour,

    J'ai compilé qt 4.8, malheureusement, un bug fait que j'ai tout compilé en statique ! Je comprends pas bien pourquoi mais vu le temps que ça a mis, je n'aimerais pas recommencer...

    Mais maintenant, je me retrouve avec un soucis côté compilation QxOrm avec mingw gcc 4.6:
    En gros, à l'édition des liens de la dll, ça me met pleins d'erreurs de ce type:
    F:\_DEV\3rdParties\QxOrm/include/QxSingleton/../../inl/QxSingleton/QxSingleton.inl:29: undefined reference to `_imp___ZN6QMutexC1ENS_13RecursionModeE'
    [...]


    Y a-t-il un moyen de compiler QxOrm en static ? Je pense que ça resoudrais mon problème.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2010
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 482
    Par défaut
    Y a-t-il un moyen de compiler QxOrm en static ?
    Je n'ai jamais essayé mais je pense que ça ne marchera pas !
    Il vaut mieux compiler tout en dynamique : Qt, boost et QxOrm.
    Concernant boost, le module boost::serialization et l'implémentation de son pattern singleton impose d'avoir une compilation dynamique (en tout cas sous Windows), sinon tu te retrouves avec de faux singleton dans chaque DLL (1 instance de singleton par DLL, ce qui n'a pas de sens).
    Sous Linux ça pourrait peut-être marcher, à voir...
    Le site de la bibliothèque QxOrm : bibliothèque C++ de gestion de données (Mapping Objet Relationnel ou ORM) basée sur les frameworks Qt et boost.
    QxEntityEditor : éditeur graphique pour la bibliothèque QxOrm (application multi-plateforme pour gérer graphiquement le modèle d'entités).

    Tutoriel : installer un environnement de développement avec QxOrm sous Windows.
    Tutoriel qxBlog : gestion de blogs en C++/Qt.
    Tutoriel qxClientServer : création d'un serveur d'applications en C++/Qt.

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2010
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 482
    Par défaut
    Je viens juste d'uploader une 1ère version BETA de QxOrm 1.2.3, elle peut être téléchargée ici :
    http://www.qxorm.com/version/QxOrm_1.2.3_BETA_03.zip

    Cette version supporte la compilation statique ! (en tout cas, ça fonctionne sur mon environnement de dév )
    Pour construire QxOrm en mode statique, il suffit de modifier le fichier QxOrm.pri :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ##############################
    # QxOrm Library Static Build #
    ##############################
     
    # To create only 1 EXE including Qt, boost serialization and QxOrm libraries without any dependency :
    #   1- be sure to build Qt and boost::serialization using static mode
    #   2- in "./QxOrm.pri" file, add the following line : "DEFINES += _QX_STATIC_BUILD"
    #   3- BUT PLEASE : in your program, add a "readme.txt" file and a "about my program..." window to indicate that your application is based on Qt, boost and QxOrm libraries !
    # Note : on Windows, static mode works with only 1 EXE, it will never work mixing DLL and EXE (because of singleton implementation of boost::serialization and QxOrm libraries)
     
    # DEFINES += _QX_STATIC_BUILD
    Remarque : je conseille tout de même d'utiliser le mode partagé (shared library) pour compiler Qt, boost et QxOrm (qui reste le mode par défaut) !
    Le site de la bibliothèque QxOrm : bibliothèque C++ de gestion de données (Mapping Objet Relationnel ou ORM) basée sur les frameworks Qt et boost.
    QxEntityEditor : éditeur graphique pour la bibliothèque QxOrm (application multi-plateforme pour gérer graphiquement le modèle d'entités).

    Tutoriel : installer un environnement de développement avec QxOrm sous Windows.
    Tutoriel qxBlog : gestion de blogs en C++/Qt.
    Tutoriel qxClientServer : création d'un serveur d'applications en C++/Qt.

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 151
    Par défaut
    C'est super !!

    Mais effectivement, en lisant ton message, je me rends compte que ça n'est pas compatible avec ton modèle de license (LGPL) pour lequel je suis obligé de fournir à l'utilisateur un moyen de changer la version de la lib.

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2010
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 482
    Par défaut
    je me rends compte que ça n'est pas compatible avec ton modèle de license (LGPL) pour lequel je suis obligé de fournir à l'utilisateur un moyen de changer la version de la lib
    En effet, et tu auras certainement le même problème avec Qt (à moins d'avoir acheté une version commerciale).
    Dans tous les cas, pour QxOrm, la compilation statique sera officiellement supportée à partir de la version 1.2.3 quand elle sortira...
    Je vais donc réfléchir à éventuellement mettre en place une double licence (comme Qt : 1 LGPL et 1 commerciale) pour contourner ce point qui peut en effet être bloquant dans certains cas. A voir...
    Le site de la bibliothèque QxOrm : bibliothèque C++ de gestion de données (Mapping Objet Relationnel ou ORM) basée sur les frameworks Qt et boost.
    QxEntityEditor : éditeur graphique pour la bibliothèque QxOrm (application multi-plateforme pour gérer graphiquement le modèle d'entités).

    Tutoriel : installer un environnement de développement avec QxOrm sous Windows.
    Tutoriel qxBlog : gestion de blogs en C++/Qt.
    Tutoriel qxClientServer : création d'un serveur d'applications en C++/Qt.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compilation statique
    Par Altess dans le forum Qt Creator
    Réponses: 11
    Dernier message: 01/11/2009, 00h53
  2. Réponses: 15
    Dernier message: 20/03/2008, 10h33
  3. [PRO*C] compilation statique oracle 10g
    Par methosxp dans le forum Interfaces de programmation
    Réponses: 0
    Dernier message: 14/09/2007, 18h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo