Précédent   Forum des professionnels en informatique > C et C++ > Bibliothèques > Qt > Outils > Bibliothèques > QxOrm
QxOrm Forum d'entraide pour QxOrm
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/01/2012, 16h02   #1
Candidat au titre de Membre du Club
 
Inscription : juin 2008
Messages : 114
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 114
Points : 14
Points : 14
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.
djarBoy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 18h21   #2
Membre chevronné
 
Inscription : avril 2010
Messages : 283
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 283
Points : 600
Points : 600
Citation:
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...
QxOrm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 12h44   #3
Membre chevronné
 
Inscription : avril 2010
Messages : 283
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 283
Points : 600
Points : 600
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 :
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.

Tutoriel qxBlog
: gestion de blogs en C++/Qt.
Tutoriel qxClientServer : création d'un serveur d'applications en C++/Qt.
QxOrm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 19h00   #4
Candidat au titre de Membre du Club
 
Inscription : juin 2008
Messages : 114
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 114
Points : 14
Points : 14
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.
djarBoy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 09h19   #5
Membre chevronné
 
Inscription : avril 2010
Messages : 283
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 283
Points : 600
Points : 600
Citation:
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.

Tutoriel qxBlog
: gestion de blogs en C++/Qt.
Tutoriel qxClientServer : création d'un serveur d'applications en C++/Qt.
QxOrm est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h36.


 
 
 
 
Partenaires

Hébergement Web