Ошибка компиляции MySQL C API, crtdbg.h не найден - PullRequest
1 голос
/ 02 сентября 2011

Я создаю основную программу на C, использующую API MySQL. Я на Windows, используя Mingw в качестве моего компилятора и затмение CDT в качестве моей IDE. Я добавил путь включения в файлы включения mysql и путь lib к файлу mysqlclient.lib. Тем не менее, я получаю эту ошибку:

D:\Programs\MinGW\include\mysql/my_dbug.h:108:20: fatal error: crtdbg.h: No such file or directory

Вот мой код:

#include <stdio.h>
#include <my_global.h>
#include <mysql.h>

int main(int argc, char *argv[]) {
    printf("Hello World\n");
    return 0;
}

Если никто не может помочь мне с этой проблемой, может кто-нибудь сказать мне, в чем разница между использованием mysqlclient.lib и libmysql.lib / libmysql.dll?

Приветствие.

1 Ответ

3 голосов
/ 06 октября 2011

Боюсь, что в дистрибутиве MinGW нет crtdbg.h.Я думаю, что в Windows этот заголовок поставляется с компилятором Microsoft.Я считаю, что вы могли бы также использовать Cygwin вместо компилятора Micrsoft, поскольку компиляция MySql в Windows возможна только с помощью Cygwin или компилятора Microsoft (MinGW не поддерживается), поэтому теоретически Cygwin должен иметь возможность компилировать вашу программу.

Вы также можете бесплатно получить компилятор Microsoft, установив Windows SDK.

Если никто не может помочь мне с этой проблемой, может кто-нибудь сказать мне, в чем разница между использованием mysqlclient.lib и libmysql.lib / libmysql.dll?

mysqlclient.lib должен быть статической библиотекой, а libmysql.lib / libmysql.dll - динамической библиотекой.

ПРИМЕЧАНИЕ: Если вы хотите использовать статическую библиотеку с компилятором Microsoft, она должна быть скомпилирована с тем же компилятором (и с той же версией), что и ваша программа.Вы можете найти больше информации о компиляции на windows здесь .Посмотрите на последний раздел Компиляция клиентов MySQL в Microsoft Windows

ОБНОВЛЕНИЕ : Используя компилятор Microsoft, вы можете скомпилировать код с помощью следующей команды:

cl mysource.c /IC:\Path\To\MySql\Include\Directory /link /LIBPATH:C:\Path\To\MySql\Lib\Directory /DEFAULTLIB:libmysql
...