Mysql
 sql >> Base de données >  >> RDS >> Mysql

erreur fatale mysql.h:Aucun fichier ou répertoire de ce type lors de la compilation

Je ne sais pas s'il y a des variations dans votre système d'exploitation. Le mien est Arch Linux, et j'ai installé mariaDB . Dans le paquet, il y a un programme appelé 'mysql_config' qui peut fournir la bonne façon de compiler votre programme. En courant

$ mysql_config --help
Usage: /usr/bin/mysql_config [OPTIONS]
Options:
    --cflags         [-I/usr/include/mysql]
    --include        [-I/usr/include/mysql]
    --libs           [-L/usr/lib -lmysqlclient -lpthread -lz -lm -lssl   -lcrypto -ldl]
    --libs_r         [-L/usr/lib -lmysqlclient_r -lpthread -lz -lm -lssl -lcrypto -ldl]
    --plugindir      [/usr/lib/mysql/plugin]
    --socket         [/run/mysqld/mysqld.sock]
    --port           [0]
    --version        [10.0.17]
    --libmysqld-libs [-L/usr/lib -lmysqld]
    --variable=VAR   VAR is one of:
            pkgincludedir [/usr/include/mysql]
            pkglibdir     [/usr/lib]
            plugindir     [/usr/lib/mysql/plugin]

vous pouvez voir les drapeaux de contrôle du programme. Avec votre programme, j'ai utilisé ce qui suit :

$gcc main.c -o main $(mysql_config --libs --cflags)

puis, en exécutant le nouveau programme 'main'

$./main
MySQL client version: 10.0.17-MariaDB

qui a clairement fonctionné !

Donc, je suis sûr qu'il existe d'autres façons de faire cela, mais maintenant cela me convient.

Astuce

Exécutez la commande

$mysql_config --libs --cflags

pour voir exactement les drapeaux produits par mysql_config. Amusez-vous !