MySQL C API编译错误,找不到crtdbg.h

时间:2011-09-02 17:10:06

标签: mysql c compiler-errors mingw crtdbg.h

我正在创建一个使用mysql api的基本C程序。我在Windows上,使用mingw作为我的编译器和eclipse cdt作为我的IDE。我已经添加了mysql包含文件的include路径和mysqlclient.lib文件的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 个答案:

答案 0 :(得分:3)

我担心MinGW发行版中没有crtdbg.h。我认为在Windows上,这个标题附带微软的编译器。我相信您也可以使用Cygwin而不是Micrsoft的编译器,因为在Windows上编译MySql只能使用Cygwin或Microsoft的编译器(MinGW不受支持),因此理论上Cygwin应该能够编译您的程序。

您还可以通过安装Windows SDK免费获得Microsoft的编译器。

  

如果没有人能够帮我解决这个问题,有人可以告诉我使用mysqlclient.lib和libmysql.lib / libmysql.dll有什么区别吗?

mysqlclient.lib应该是静态库而libmysql.lib / libmysql.dll是动态库。

注意:如果要将静态库与microsoft的编译器一起使用,则必须使用与编程相同的编译器(以及相同的版本)进行编译。您可以在Windows here上找到有关编译的更多信息。请看最后一节在Microsoft Windows上编译MySQL客户端

UPDATE :使用Microsoft的编译器,您可以使用以下命令编译代码:

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