Mysql
 sql >> Database >  >> RDS >> Mysql

errore fatale mysql.h:nessun file o directory di questo tipo durante la compilazione

Non so se c'è qualche variazione nel tuo sistema operativo. Il mio è Arch Linux e ho installato mariaDB . All'interno del pacchetto, c'è un programma chiamato 'mysql_config' che può fornire il modo giusto per compilare il tuo programma. Correndo

$ 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]

puoi vedere i flag di controllo del programma. Con il tuo programma, ho usato quanto segue:

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

e poi, eseguendo il nuovo programma 'main'

$./main
MySQL client version: 10.0.17-MariaDB

che ha chiaramente funzionato!

Quindi, sono sicuro che ci sono altri modi per farlo, ma ora per me va bene.

Suggerimento

Esegui il comando

$mysql_config --libs --cflags

per vedere esattamente i flag prodotti da mysql_config. Divertiti!