【问题标题】:mysql.h : No such file or directorymysql.h:没有这样的文件或目录
【发布时间】:2019-04-25 05:18:18
【问题描述】:

我在windows环境中使用代码块。这是我连接mysql数据库的c代码。

/* 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

什么时候在代码块中使用c++,包括mysql.h没有问题。但是当我使用c时,会弹出上述错误。

【问题讨论】:

  • MySQL 库及其开发文件(头文件和链接器库)是否安装在编译器和链接器所在的默认位置?如果不是(似乎不是),那么您需要配置您的项目,以便它可以找到这些文件。您可能已经为您的 C++ 项目进行了该配置,但只是忘记了它,所以我建议您检查 C++ 项目的(预处理器和链接器库)设置。
  • 如何在代码块中检查它?
  • 我赌#include &lt;mysql/mysql.h&gt;
  • 相关stackoverflow.com/q/14604228/694576,如果不是骗子的话。
  • OT:不管某些编译器允许什么,main() 的返回类型是int,而不是空白

标签: mysql c include c-preprocessor header-files


【解决方案1】:

要在 Windows 机器上使用 mysql,必须下载mysql connector for windows。安装它并保留默认值后,可以在以下位置找到头文件和 lib 文件。

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

C:\Program Files\MySQL\MySQL 服务器 8.0

通常您必须为您检测正确的标题和库并正确链接它们。请参考this tutorial

【讨论】:

  • 如果某个答案适合您,您应该通过接受它来表明这一点(单击答案旁边的复选标记)。这将奖励回答者并告知其他人该问题已得到处理。
【解决方案2】:

mysql解决方案

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

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

然后在 setup_windows.py 中注释到 mysqlclent 目录行 client = 'mariadbclient' 并取消注释上一行,然后复制 将存储在 mysql 服务器 lib 目录中的 mysqlclient.lib 文件放入

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

这个解决方案对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多