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

Bases de données Discussion :

Compilation du module QtSql avec Visual C++


Sujet :

Bases de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 51
    Par défaut Compilation du module QtSql avec Visual C++
    Bonjour a tous

    J'ai donc compiler Qt pour l'integrer à Visual Studio, tout fonctionne correctement mais quand j' integre les librairie SQL pour me connecter à une base MYSQL

    #include <QtSql/QtSql>
    #include <QtSql/QSqlDatabase>

    seulement j'ai des message d'erreur du type

    QSqlDatabase db = QSqlDatabase::addDatabase("Mysql");
    db.setHostName ( "localhost");
    db.setDatabaseName("blabla");
    db.setUserName("blabla");
    db.setPassword("blabla");
    bool ok = db.open();

    ------ Début de la génération : Projet : ProjetQt, Configuration : Debug Win32 ------
    1>Actions de projet Makefile en cours
    1>Microsoft (R) Program Maintenance Utility Version 9.00.21022.08
    1>Copyright (C) Microsoft Corporation. Tous droits rÚservÚs.
    1> "c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\nmake.exe" -f Makefile.Debug
    1>Microsoft (R) Program Maintenance Utility Version 9.00.21022.08
    1>Copyright (C) Microsoft Corporation. Tous droits rÚservÚs.
    1> cl -c -nologo -Zm200 -Zc:wchar_t- -Zi -MDd -GR -EHsc -W3 -w34100 -w34189 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"c:\Qt\4.5.1\include\QtCore" -I"c:\Qt\4.5.1\include\QtGui" -I"c:\Qt\4.5.1\include" -I"." -I"." -I"c:\Qt\4.5.1\include\ActiveQt" -I"debug" -I"." -I"c:\Qt\4.5.1\mkspecs\win32-msvc2008" -Fodebug\ @C:\Users\Andy\AppData\Local\Temp\nm62F1.tmp
    1>main.cpp
    1>.\main.cpp(15) : warning C4189: 'ok' : variable locale initialisée mais non référencée
    1> link /LIBPATH:"c:\Qt\4.5.1\lib" /NOLOGO /DEBUG /MANIFEST /MANIFESTFILE:"debug\ProjetQt.intermediate.manifest" /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /OUT:debug\ProjetQt.exe @C:\Users\Andy\AppData\Local\Temp\nm7EBC.tmp
    1>main.obj : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: bool __thiscall QSqlDatabase::open(void)" (__imp_?open@QSqlDatabase@@QAE_NXZ) référencé dans la fonction _main
    1>main.obj : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: void __thiscall QSqlDatabase::setPassword(class QString const &)" (__imp_?setPassword@QSqlDatabase@@QAEXABVQString@@@Z) référencé dans la fonction _main
    1>main.obj : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: void __thiscall QSqlDatabase::setUserName(class QString const &)" (__imp_?setUserName@QSqlDatabase@@QAEXABVQString@@@Z) référencé dans la fonction _main
    1>main.obj : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: void __thiscall QSqlDatabase::setDatabaseName(class QString const &)" (__imp_?setDatabaseName@QSqlDatabase@@QAEXABVQString@@@Z) référencé dans la fonction _main
    1>main.obj : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: void __thiscall QSqlDatabase::setHostName(class QString const &)" (__imp_?setHostName@QSqlDatabase@@QAEXABVQString@@@Z) référencé dans la fonction _main
    1>main.obj : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: __thiscall QSqlDatabase::QSqlDatabase(void)" (__imp_??0QSqlDatabase@@QAE@XZ) référencé dans la fonction _main
    1>NMAKE : fatal error U1077: '"c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\link.EXE"'á: code retour '0x460'
    1>debug\ProjetQt.exe : fatal error LNK1120: 6 externes non résolus
    1>Stop.
    1>NMAKE : fatal error U1077: '"c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\nmake.exe"'á: code retour '0x2'
    1>Stop.
    1>Project : error PRJ0019: Un outil a retourné un code d'erreur à partir de "Actions de projet Makefile en cours"
    1>Le journal de génération a été enregistré à l'emplacement "file://c:\Users\Andy\Documents\Visual Studio 2008\Projects\ProjetQt\ProjetQt\Debug\BuildLog.htm"
    1>ProjetQt - 10 erreur(s), 1 avertissement(s)
    ========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========




    Merci d'avance pour l'aide

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut
    Bonjour,

    Dans ton fichier pro, as-tu bien précisé que tu voulais utiliser le module QtSql (QT += sql) ? Ensuite, tu refais qmake -tp vc puis tu utilises le projet qui est apparu.

    Ou bien, tu utilises l'intégration à VC. Auquel cas, dans le menu Projet, quand tu as ta solution ouverte, il y a une option Add Qt Module. Tu y sélectionnes SQL Module.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 51
    Par défaut
    Réponse très rapide merci

    Alors j'utilise Visual Studio donc le fichier .pro m'est inutile je l'ai quand mme complété

    Le Projet Visual Studio est un Nmake, jen 'ai pas beaucoup d'option d'integration

    dans l'onglet Projet -> Page de propriete <projet>
    j'ai :

    Propriete commune
    -> Structure et reference
    Propriete de configuration
    -> general
    -> Debogage
    -> Nmake (option de compilation pour QT)

    J'ai effectivement fait attention a Qt += sql mais je ne sais pas ou le mettre dans Visual Studio

    cdlt

  4. #4
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut
    Tu ajoutes cette directive dans un fichier .pro (si tu n'en n'as pas utilisé pour obtenir ta solution, tu es juste masochiste...), qui fait, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    HEADERS = view.h 
    SOURCES = view.cpp
    QT += sql
    Ensuite, dans le dossier où tu as le .pro, tu fais :
    Tu obtiendras une solution pour VC qui compilera directement avec le support de QtSql.

    C'est la méthode la plus rapide et la plus simple sans l'intégration.

    Tu n'es pas obligé de préciser dès le départ tous tes fichiers, mais alors si tu en ajoutes, tu devras spécifier manuellement à VC qu'ils doivent passer au moc...

    Si tu n'as pas encore de .pro, fais ceci dans le dossier de tes fichiers source :
    Tu en auras un qui précise tous tes fichiers.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 51
    Par défaut
    oui j'ai bien un fichier .pro mais je ne savais pas qu'il était utilisé pas VC

    donc j'ai ajouter le

    Qt += sql dans le .pro

    j'ai verifier apres reouverture du fichier qu'il était bien là

    mais dès que je compile avec VC le .pro se remet sans le Qt += sql

    Il doit y avoir une option à mettre dans VC

    EDIT:

    Quand je fait

    qmake -tp vc
    WARNING: Unable to generate output for: C:/Users/Andy/Documents/Visual Studio 20
    08/Projects/ProjetQt/ProjetQt//Makefile.Debug [TEMPLATE vcapp]
    WARNING: Unable to generate output for: C:/Users/Andy/Documents/Visual Studio 20
    08/Projects/ProjetQt/ProjetQt//Makefile.Release [TEMPLATE vcapp]


    Edit 2 :

    L'option de compilation VC est
    qmake -project & qmake & nmake

    Ce qui recree le .pro à chaque compilation , et sans le qmake -project
    le fichier .pro reste intact mais le message d'erreur reste identique


  6. #6
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut
    Citation Envoyé par Andyl Voir le message
    oui j'ai bien un fichier .pro mais je ne savais pas qu'il était utilisé pas VC
    Il n'est pas directement utilisé par VC : qmake l'utilise pour générer le projet VC, et puis c'est tout.

    Citation Envoyé par Andyl Voir le message
    donc j'ai ajouter le
    Qt += sql dans le .pro
    Jusque là, ça va.

    Citation Envoyé par Andyl Voir le message
    j'ai verifier apres reouverture du fichier qu'il était bien là
    On n'est jamais assez sûr.

    Citation Envoyé par Andyl Voir le message
    mais dès que je compile avec VC le .pro se remet sans le Qt += sql
    Copie tes sources dans un autre dossier (uniquement tes sources, pas un seul .vcproj, .pro ou autre .suo, seulement des .h(pp) et des .cpp), fais ceci :
    Tu vérifies bien que le .pro contient la ligne
    Sinon, tu l'ajoutes. Si tu utilises d'autres modules de Core ou Gui, profites-en pour les ajouter. Ensuite, tu fais :
    Puis tu ouvres le .sln qui vient d'apparaître avec VC.
    Ensuite, tu réessayes. Là, normalement, pas de problème.

    Citation Envoyé par Andyl Voir le message
    Il doit y avoir une option à mettre dans VC
    Normalement, non : VC n'a que faire du .pro et de Qt (c'est juste une librairie comme les autres, sauf qu'il doit faire passer tes fichiers à un exécutable, Qt n'a pas plus de droits que les autres là-bas).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

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

Discussions similaires

  1. Réponses: 46
    Dernier message: 29/07/2008, 14h24
  2. compilation de module apache avec MinGW
    Par mr-ti dans le forum Windows
    Réponses: 1
    Dernier message: 16/05/2008, 13h22
  3. Réponses: 4
    Dernier message: 10/11/2007, 14h59
  4. Compiler du code Assembleur avec Visual C++
    Par maria_0009 dans le forum Visual C++
    Réponses: 1
    Dernier message: 14/01/2007, 13h29

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