1

我正在创建一个使用 mysql api 的基本 C 程序。我在 Windows 上,使用 mingw 作为我的编译器,使用 eclipse cdt 作为我的 IDE。我已经添加了 mysql 包含文件的包含路径和 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 有什么区别吗?

干杯。

4

1 回答 1

3

恐怕MinGW发行版中没有crtdbg.h。我认为在 Windows 上,这个头文件带有微软的编译器。我相信你也可以使用 Cygwin 而不是 Micrsoft 的编译器,因为在 Windows 上编译 MySql 只能使用 Cygwin 或 Microsoft 的编译器(不支持 MinGW),所以理论上 Cygwin 应该能够编译你的程序。

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

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

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

注意:如果您想使用带有微软编译器的静态库,那么它必须使用与您编程相同的编译器(和相同的版本)进行编译。您可以在此处找到有关在 Windows 上编译的更多信息。查看最后一节在 Microsoft Windows 上编译 MySQL 客户端

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

cl mysource.c /IC:\Path\To\MySql\Include\Directory /link /LIBPATH:C:\Path\To\MySql\Lib\Directory /DEFAULTLIB:libmysql
于 2011-10-05T23:03:57.207 回答