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

Bibliothèques Discussion :

[MySQL] Compiler un programme sous Linux


Sujet :

Bibliothèques

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    electricien
    Inscrit en
    Février 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : electricien
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2016
    Messages : 6
    Points : 1
    Points
    1
    Par défaut [MySQL] Compiler un programme sous Linux
    Bonjour,

    Je suis plus ou moins débutant en programmation,
    j'essaye en vain de compiler la libraire mysql en ligne de commande avec g++ sous Linux en c++.
    J'ai essayé entre autre la commande:
    g++ -o monCode -I/usr/include/mysql -L/usr/lib -lmysqlclient monCode.cpp

    Rien ne semble fonctionner.
    Si quelqu'un peux m'aider, merci d'avance.

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    a tout hasard, tu n'as pas installé la version dev de libmysql ou de libmysqlclient
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    electricien
    Inscrit en
    Février 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : electricien
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2016
    Messages : 6
    Points : 1
    Points
    1
    Par défaut compiler mysql c++ linux g++
    J'ai installé libmysqlclient18 et libmysqlclient-dev.
    J'ai aussi installé mysql-server.
    J'avais déja d'installé mysql-client, mysql-client-5.5, mysql-client-core-5.5 et mysql-common.
    Je ne comprends pas la bonne syntaxe à utiliser pour pouvoir compiler.
    Merci

  4. #4
    Membre chevronné Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Points : 2 160
    Points
    2 160
    Par défaut
    Bonjour

    Quelle est l'erreur affichée ?

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    electricien
    Inscrit en
    Février 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : electricien
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2016
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    le message d'erreur est :
    référence indéfinie vers « mysql_init »
    -> donc la première ligne du code qui appelle mysql est refusée :
    MYSQL *connect;
    connect = mysql_init(NULL);
    connect = mysql_real_connect(connect, server, user, password, database, 0,NULL,0);
    return 0;


    Merci

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    En l'occurence la compilation réussit, c'est l'édition de lien (link) qui échoue.
    Faut lier mysql.lib
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  7. #7
    Membre chevronné Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Points : 2 160
    Points
    2 160
    Par défaut
    Essaye de compiler avec cette commande :
    Code Bash : Sélectionner tout - Visualiser dans une fenêtre à part
    g++ -o monCode `mysql_config --cflags --include --libs` monCode.cpp

  8. #8
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Vous pouvez trouver plus de précision sur le processus de compilation ici .
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    electricien
    Inscrit en
    Février 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : electricien
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2016
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    g++ -o monCode `mysql_config --cflags --include --libs` monCode.cpp me donne le même message d'erreur.
    Merci

  10. #10
    Membre chevronné Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Points : 2 160
    Points
    2 160
    Par défaut
    Que retourne la commande mysql_config --cflags --include --libs ?

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Je suis pas un expert en ligne de commande, mais j'aurais juré que pour lier une lib mysql c'était -lmysql
    edit: ha ok c'est donc caché dans cet étrange mysql_config merci!
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  12. #12
    Membre chevronné Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Points : 2 160
    Points
    2 160
    Par défaut
    Chez moi, mysql_config --libs retourne -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm -ldl.

  13. #13
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    C'est le role de mysql_config de produire les bonnes options.
    D'où les "back quotes"
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    electricien
    Inscrit en
    Février 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : electricien
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2016
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Bonjour et merci aux personnes qui essayent de faire avancer mon probleme.
    La commande mysql_config --cflags --include --libs retourne :

    -I/usr/include/mysql -DBIG_JOINS=1 -fno-strict-aliasing -g -DNDEBUG
    -I/usr/include/mysql
    -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm -ldl


    merci

  15. #15
    Membre chevronné Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Points : 2 160
    Points
    2 160
    Par défaut
    Bizarre ; tu es sûr d'avoir le même message d'erreur ?
    Essaye de mettre le `mysql_config --cflags --include --libs` à la fin de la ligne de commande (l'ordre est important).

    Dans mon cas, avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <iostream>
     
    #include <mysql/mysql.h>
     
    int main()
    {
    	MYSQL m;
    	mysql_init(&m);
     
    	return 0;
    }
    Et cette commande pour compiler :
    Code Bash : Sélectionner tout - Visualiser dans une fenêtre à part
    g++ -Wall -Wextra -Wconversion -Wsign-conversion -Ofast -std=c++14 -pedantic -fopenmp main.cpp -o main

    J'obtiens cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    main.cpp:(.text.startup+0xb): référence indéfinie vers « mysql_init »
    Mais avec cette ligne de commande, aucune erreur :
    Code Bash : Sélectionner tout - Visualiser dans une fenêtre à part
    g++ -Wall -Wextra -Wconversion -Wsign-conversion -Ofast -std=c++14 -pedantic -fopenmp main.cpp -o main `mysql_config --cflags --include --libs`

  16. #16
    Nouveau Candidat au Club
    Homme Profil pro
    electricien
    Inscrit en
    Février 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : electricien
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2016
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    g++ code.cpp -o hello `mysql_config --cflags --include --libs` fonctionne impeccable.
    Il fallait effectivement mettre `mysql_config --cflags --include --libs` en fin de commande.
    Merci mille fois

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

Discussions similaires

  1. Problème pour compiler un programme sous linux ?
    Par petitclem dans le forum Applications et environnements graphiques
    Réponses: 9
    Dernier message: 30/07/2008, 09h58
  2. Compilation d'un programme sous Linux
    Par Tymk dans le forum FMOD
    Réponses: 6
    Dernier message: 03/07/2008, 08h41
  3. [16F84a] Programmation sous linux
    Par Michaël dans le forum Autres architectures
    Réponses: 2
    Dernier message: 25/02/2006, 12h05
  4. GDB/Recherche EDI - Debugguer un programme sous linux
    Par Rodrigue dans le forum Applications et environnements graphiques
    Réponses: 6
    Dernier message: 17/01/2006, 23h35
  5. Problemes de compilation avec g++ sous linux
    Par Selimmel dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 19/09/2003, 13h43

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