mysql_init()始终返回null

时间:2015-10-21 12:04:44

标签: c++ mysql visual-studio-2015 mariadb libmysql

我有这个非常短的节目。出于某种原因,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中的lib。

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

1 个答案:

答案 0 :(得分:2)

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

正确的是libmysql.lib。