Mysql
 sql >> Datenbank >  >> RDS >> Mysql

schwerwiegender Fehler mysql.h:Keine solche Datei oder Verzeichnis während der Kompilierung

Ich weiß nicht, ob es einige Abweichungen in Ihrem Betriebssystem gibt. Meins ist Arch Linux und ich habe mariaDB installiert . Innerhalb des Pakets gibt es ein Programm namens 'mysql_config', das Ihnen den richtigen Weg zum Kompilieren Ihres Programms bieten kann. Durch Laufen

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

Sie können die Steuerflags des Programms sehen. Mit Ihrem Programm habe ich Folgendes verwendet:

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

und dann durch Ausführen des neuen Programms 'main'

$./main
MySQL client version: 10.0.17-MariaDB

was eindeutig geklappt hat!

Also, ich bin mir sicher, dass es ein paar andere Möglichkeiten gibt, dies zu tun, aber jetzt ist das für mich in Ordnung.

Tipp

Führen Sie den Befehl

aus
$mysql_config --libs --cflags

um genau die Flags zu sehen, die mysql_config erzeugt. Viel Spaß!