将mysql.h链接到C程序时出错

时间:2019-04-06 14:17:35

标签: mysql c static-linking dynamic-linking mysql-connector-c

我正在设置MySQL数据库后端,以与我的C程序一起使用(在Windows 10 64位系统上),当前我只是在测试以下非常基本的代码。

#include<stdio.h>
#include<stdlib.h>
#include "mysql.h"

static char *host = "localhost";
static char *user = "admin";
static char *pass = "admin";
static char *dbname = "biblio";

unsigned int port = 3306;
static char *unix_socket = NULL;
unsigned int flag = 0;

int main() {
    MYSQL *conn;

    conn = mysql_init(NULL);
    if(!(mysql_real_connect(conn, host, user, pass, dbname, port, unix_socket, flag))) {
        printf("\nError: %s [%d]\n", mysql_error(conn), mysql_errno(conn));
        exit(1);
    }
    printf("Connection successful!\n\n");

    return EXIT_SUCCESS;
}

我无法弄清楚如何正确链接mysql.h或libmysql.dll的位置,或者我不知道该如何解决此问题。 我已经安装了MinGW,我的mysqld进程也正在运行,并且以下是makefile的代码,它可以编译而没有任何错误,但是当我运行输出时,出现错误,代码执行无法继续,因为找不到libmysql.dll。 我也尝试将libmysql.dll粘贴到我的代码的根目录中,但随后引发一些'caching_sha2_password'函数错误,因此我认为这可能不是正确的方法,因为无法将所有连接器文件粘贴到该目录中(或他们可以,我不知道请帮忙)。

CFLAGS = -I'C:\Program Files\MySQL\MySQL Connector C 6.1\include\' -L'C:\Program Files\MySQL\MySQL Connector C 6.1\lib' -lmysql

output: backend.c
    gcc $< $(CFLAGS) -o $@

在运行此代码之前,请告诉我我应该知道什么以及如何正确进行。

0 个答案:

没有答案