Ошибка при связывании mysql.h с программой на C - PullRequest
0 голосов
/ 06 апреля 2019

Я настраиваю базу данных MySQL для использования с моей программой на C (в Windows 10 64-bit), в настоящее время я просто тестирую следующий базовый код.

#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 также запущен, и ниже приведен код make-файла, он компилируется без каких-либо ошибок, но когда я запускаю вывод, я получаю сообщение об ошибке, что выполнение кода не может быть продолжено, поскольку 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 $@

Пожалуйста, скажите мне, что я должен знать перед запуском этого кода и как правильно продолжить.

...