我正在创建一个使用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有什么区别吗?
干杯。
答案 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