mysql.h: 没有这个文件或目录

5

我正在windows环境下使用CodeBlocks。以下是我用C语言连接MySQL数据库的代码:

/* Simple C program that connects to MySQL Database server*/
    #include <mysql.h>
    #include <stdio.h>

    main() {
      MYSQL *conn;
      MYSQL_RES *res;
      MYSQL_ROW row;

      char *server = "localhost";
      char *user = "root";
      //set the password for mysql server here
      char *password = "*********"; /* set me first */
      char *database = "Real_flights";

      conn = mysql_init(NULL);

      /* Connect to database */
      if (!mysql_real_connect(conn, server,
            user, password, database, 0, NULL, 0)) {
          fprintf(stderr, "%s\n", mysql_error(conn));
          exit(1);
      }

      /* send SQL query */
      if (mysql_query(conn, "show tables")) {
          fprintf(stderr, "%s\n", mysql_error(conn));
          exit(1);
      }

      res = mysql_use_result(conn);

      /* output table name */
      printf("MySQL Tables in mysql database:\n");
      while ((row = mysql_fetch_row(res)) != NULL)
          printf("%s \n", row[0]);

      /* close connection */
      mysql_free_result(res);
      mysql_close(conn);
    }

我遇到了一个错误弹窗,上面写着:

mysql.h : No such file or directory

在使用Codeblocks时,如果包括mysql.h文件并使用C++编写代码,则不会出现错误。但是,如果使用C语言编写代码,则会出现以上错误。

2
MySQL库及其开发文件(头文件和链接库)是否安装在编译器和链接器查找的默认位置?如果没有(似乎不是),那么您需要配置项目以便它可以找到这些文件。您可能已经为C++项目进行了该配置,但只是忘记了,因此建议您检查C++项目的(预处理器和链接器库)设置。 - Some programmer dude
如何在CodeBlocks中进行检查? - Mr.Shark
我的赌注在于 #include <mysql/mysql.h> - alk
如果不是重复问题,请参考 https://dev59.com/IGUq5IYBdhLWcg3wTuyi。 - alk
无论某些编译器允许什么,main()函数的返回类型是int,而不是空白。 - user3629249
2个回答

4
要在Windows机器上使用mysql,必须下载mysql connector for windows。安装后保持默认设置,可以在以下位置找到头文件和库文件。

C:\Program Files\MySQL\Connector C++ 8.0

C:\Program Files\MySQL\MySQL Server 8.0

通常需要检测适合您的正确头文件和库文件,并正确链接它们。请参考this tutorial

1
如果一个答案对你有用,你应该通过接受它来表示(点击答案旁边的复选标记)。这将奖励回答者并告知其他人问题已经得到解决。 - rici

0

MySQL解决方案

安装MySQL服务器,然后进入MySQL服务器的include目录,将mysql文件夹和头文件复制到文件夹中,例如:

C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.28.29910\include

然后在setup_windows.py文件中,将位于mysqlclient目录下的client = 'mariadbclient'这一行注释掉,并取消注释前一行,然后将存储在mysql服务器lib目录中的mysqlclient.lib文件复制到该目录下。

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.16299.0\ucrt\x64.

这个解决方案对我有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接