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

fatal fejl mysql.h:Ingen sådan fil eller mappe under kompilering

Jeg ved ikke, om der er nogen variation i dit operativsystem. Min er Arch Linux, og jeg har installeret mariaDB . Inden i pakken er der et program kaldet 'mysql_config', som kan give den rigtige måde at kompilere dit program på. Ved at løbe

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

du kan se programmets kontrolflag. Med dit program brugte jeg følgende:

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

og derefter ved at køre det nye program 'main'

$./main
MySQL client version: 10.0.17-MariaDB

hvilket tydeligvis lykkedes!

Så jeg er sikker på, at der er et par andre måder at gøre dette på, men nu er det fint for mig.

Tip

Kør kommandoen

$mysql_config --libs --cflags

for at se de nøjagtige flag, som mysql_config producerer. God fornøjelse!



  1. Sådan "Unhex" et nummer i MySQL

  2. PostgreSQL-forespørgsel for at vise alle tabelnavne?

  3. Hvordan kontrollerer man eksisterende post, før man indsætter post for hver bruger i samme tabel?

  4. Sådan validerer du brugerloginoplysningerne i Android ved hjælp af PHP, MySql ved hjælp af json