4

我有这个非常短的程序。出于某种原因,mysql_init 总是为我返回 null。根据文档,如果内存不足,就会发生这种情况。怎么会这样?就是这几行代码。

#include "mysql.h"

int main()
{
    MYSQL * mysql;
    mysql = mysql_init(0);
    // here mysql is 0
    return 0;
}

我使用 Visual Studio 2015 和来自 mariadb-10.1.8-win32.zip 的库。

编辑:我让它工作了一点。我在 Visual Studio 中使用调试设置进行编译并链接到 libmysqld.lib。我还将 libmysqld.dll 复制到工作目录中。这导致了我上面描述的效果。我试图链接到 libmysql.lib 并将 libmysql.dll 复制到工作目录并且有效。我不打算调试 mysql 代码,所以我可以忍受。尽管为什么调试库不适用于相同的代码,但仍然很奇怪。

4

1 回答 1

3

如果与 libmysqld.lib 链接,mysql_init 将返回 NULL 或崩溃。我在mysql5.6 5.7 win10 vs2017上测试。

正确的是 libmysql.lib。

于 2017-08-08T00:19:37.807 回答