我正在创建一个使用mysql API的基本C程序。我在Windows上,使用mingw作为我的编译器,并使用eclipse 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有什么区别吗?
干杯。
最佳答案
恐怕MinGW发行版中没有crtdbg.h。我认为在Windows上,此 header 随Microsoft的编译器一起提供。我相信您也可以使用Cygwin而不是Micrsoft的编译器,因为只有使用Cygwin或Microsoft的编译器(不支持MinGW)才能在Windows上编译MySql,因此从理论上讲Cygwin应该能够编译您的程序。
您还可以通过安装Windows SDK免费获得Microsoft的编译器。
mysqlclient.lib应该是静态库,而libmysql.lib/libmysql.dll是动态库。
注意:如果要与Microsoft的编译器一起使用静态库,则必须使用与程序相同的编译器(以及相同的版本)进行编译。您可以找到有关在Windows上here进行编译的更多信息。查看最后一节,在Microsoft Windows上编译MySQL客户端
更新:使用Microsoft的编译器,您可以使用以下命令来编译代码:
cl mysource.c /IC:\Path\To\MySql\Include\Directory /link /LIBPATH:C:\Path\To\MySql\Lib\Directory /DEFAULTLIB:libmysql
关于mysql - MySQL C API编译错误,找不到crtdbg.h,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7286935/