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

发布于 2024-12-02 20:01:15 字数 574 浏览 2 评论 0原文

我正在创建一个使用 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 之间有什么区别吗?

干杯。

I'm creating a basic C program that uses the mysql api. I'm on windows, using mingw as my compiler and eclipse cdt as my IDE. I have added the include path to the mysql include files and the lib path to the mysqlclient.lib file.
However, I get this error:

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

Here is my code:

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

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

If no one is able to help me out with that problem, could someone tell me what the difference is between using mysqlclient.lib and libmysql.lib/libmysql.dll?

Cheers.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

画▽骨i 2024-12-09 20:01:15

恐怕 MinGW 发行版中没有 crtdbg.h。我认为在Windows上,这个头文件是由微软的编译器附带的。我相信你也可以使用Cygwin代替Micrsoft的编译器,因为在Windows上编译MySql只能使用Cygwin或微软的编译器(不支持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

I am afraid that there is no crtdbg.h in MinGW distribution. I think that on Windows, this header comes with Microsoft's compiler. I believe that you could also use Cygwin instead of Micrsoft's compiler, since compiling MySql on Windows is only possible with Cygwin or Microsoft's compiler (MinGW is not supported), so in theory Cygwin should be able to compile your program.

You can also get Microsoft's compiler for free by installing Windows SDK.

If no one is able to help me out with that problem, could someone tell me what the difference is between using mysqlclient.lib and libmysql.lib/libmysql.dll?

mysqlclient.lib should be static library and libmysql.lib/libmysql.dll is dynamic library.

NOTE: If you want to use static library with microsoft's compiler then it must be compiled with same compiler (and same version too) as you program. You can find more information about compiling on windows here. Look at the last section Compiling MySQL Clients on Microsoft Windows

UPDATE: Using Microsoft's compiler you can compile you code by using following command:

cl mysource.c /IC:\Path\To\MySql\Include\Directory /link /LIBPATH:C:\Path\To\MySql\Lib\Directory /DEFAULTLIB:libmysql
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文