在 C 编程中使用 mysql

在 C 编程中使用 mysql

我在虚拟机上安装了 ubuntu。在那里,我安装了 mysql 服务器(sudo apt-get install mysql-server)。这有效,因为我可以访问 mysql-u root -p 密码。之后,我执行了: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);
}

当我使用 gcc version.c -o version mysql_config --cflags --libs 编译此文件时,它可以正常工作。但是当我从下面编译此文件时( gcc createdb.c -o createdb -std=c99 mysql_config --cflags --libs),我收到一些错误。

#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);
}

错误:

"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' "

有人能解释一下我做错了什么,以及如何解决吗?我只是想从 C 程序中的表中获取一些数据。

答案1

你需要命令替换命令周围的语法mysql_config;或者使用“反引号”:

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

$(...)

gcc createdb.c -o createdb -std=c99 $(mysql_config --cflags --libs)

相关内容