Y-a-t-il un mysql.h sous Linux?

feraudyh Messages postés 78 Statut Membre -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
On m'a passé une partie des sources C++ d'une application Windows en me demandant si cela pourrait être porté sous Linux (Ubuntu 14.04). Or dans ces sources qu'on ma filé il y a
mysql.h dans lequel il y a une occurrence de #include "mysql_com.h". Le fichier mysql.h a l'air d'être écrit pour plein de plateformes. Mais je ne sais pas où il l'ont récupéré, et plus inquiétant c'est que malgré que j'ai installé un package de "connecteur" MSQL mais aussi libmysqlcppconn pour faire le dévéloppement, il n'y a rien à faire: aucune recherche sur mon disque ne trouve mysql.h en dehors de ce qui m'a été filé, et encore moins mysql_com.h.
J'ajoute que j'ai aussi installé le client mysql et le serveur.
merci de votre attention

5 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Il faut installer le paquet qui fournit cette librairie. On va installer un moteur de recherche pour trouver le bon paquet :

    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install apt-file
    apt-file update

    À présent cherchons qui fournit cette librairie :

    apt-file search mysql.h

    Exemple : (je rajoute un grep pour filtrer les lignes inutiles)

    (mando@velvet) (~) $ apt-file search mysql.h | grep "/mysql.h$"
    libmariadbclient-dev: /usr/include/mysql/mysql.h
    libmysqlclient-dev: /usr/include/mysql/mysql.h
    pike7.8-mysql: /usr/lib/pike7.8/7.4/include/mysql.h

    On voit qu'il faut ici installer
    libmysqlclient-dev
    , donc on lance :

    sudo apt-get install libmysqlclient-dev

    Bonne chance
    4
  2. feraudyh Messages postés 78 Statut Membre 6
     
    La réponse est superbe, parce qu'elle va m'être utile pour bien d'autres problèmes.
    Merci
    0
  3. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Oui la démarche est très générique et résout la plupart des problèmes de fichiers manquant.

    Après quand un fichier n'est pas trouvé par apt-file c'est soit qu'il faut relancer
    apt-file update
    pour mettre à jour la base de recherche, soit qu'aucun dépôt (
    /etc/apt/sources.list
    ) ne fournit un paquet qui répond à ta recherche.
    http://doc.ubuntu-fr.org/sources.list

    Bonne chance
    0
  4. feraudyh Messages postés 78 Statut Membre 6
     
    En pratique je viens d'avoir des pb:
    apt-file update semble fonctionner
    et puis je fais
    sudo apt-file search mysql.h
    et j'ai un message
    The cache is empty you need to run apt-file update first
    je le refais, et je recommence tout, mais rien à faire, même avec sudo
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    apt-file search
    te renvoie cette erreur si tu n'as pas lancé
    apt-file update
    . Méfie toi car selon que tu sois root ou utilisateur, le cache n'est pas généré au même endroit. En d'autres termes si tu fais lance le "update" en utilisateur, il faut lancer le "search" avec ce même utilisateur.

    Ensuite la démarche que je te donne est générale et sert juste à trouver le nom du paquet. Dans l'absolu tu peux trouver cette même information via le site :
    https://packages.ubuntu.com/fr/

    Enfin, il y a de fortes chance que sous ubuntu, le nom du paquet soit toujours "libmysqlclient-dev", donc tu peux admettre ce résultat et lancer directement son installation :

    sudo apt-get install libmysqlclient-dev

    Bonne chance
    0