Usando o mysql na programação C [closed]

0

Eu instalei o ubuntu em uma máquina virtual.Lá, eu instalei o servidor mysql (sudo apt-get install mysql-server) .Isso funcionou, porque eu podia acessar mysql-u root -p password. Depois disso, eu fiz: sudo apt-get install libmysqlclient-dev.

#include <my_global.h>
#include <mysql.h>

int main(int argc, char **argv)
{
  printf("MySQL client version: %s\n", mysql_get_client_info());

  exit(0);
}

Quando eu compilo isto com o gcc version.c -o versão mysql_config --cflags --libs ele funciona. Mas quando eu compilo este de baixo (gcc createdb.c -o createdb -std = c99 mysql_config --cflags --libs) eu recebo alguns erros.

#include <my_global.h>
#include <mysql.h>

int main(int argc, char **argv)
{  
  MYSQL *con = mysql_init(NULL);

  if (con == NULL) 
  {
      fprintf(stderr, "%s\n", mysql_error(con));
      exit(1);
  }

  if (mysql_real_connect(con, "localhost", "root", "root_pswd", 
          NULL, 0, NULL, 0) == NULL) 
  {
      fprintf(stderr, "%s\n", mysql_error(con));
      mysql_close(con);
      exit(1);
  }  

  if (mysql_query(con, "CREATE DATABASE testdb")) 
  {
      fprintf(stderr, "%s\n", mysql_error(con));
      mysql_close(con);
      exit(1);
  }

  mysql_close(con);
  exit(0);
}

Erros:

"Usage:: No such file or directory
[OPTIONS]: No such file or directory
Options:: No such file or directory
[-I/usr/include/mysql: No such file or directory
[-L/user/lib/x86_64-linux-gnu: No such file or directory
.
.
.
unrecognized command line option '--cflags'
unrecognized command line option '--libs'
.
.
unrecognized command line option '--socket'
unrecognized command line option '--port' "

Alguém pode me explicar o que eu fiz de errado e como corrigi-lo? Eu só quero pegar alguns dados de tabelas em um programa em C.

    
por unt mazga 21.12.2014 / 23:41

1 resposta

2

Você precisa da sintaxe de substituição de comandos em torno do comando mysql_config ; com 'backticks':

gcc createdb.c -o createdb -std=c99 'mysql_config --cflags --libs'

ou com $(...)

gcc createdb.c -o createdb -std=c99 $(mysql_config --cflags --libs)
    
por steeldriver 21.12.2014 / 23:54