(VS13)mysqlclient.lib编译(我认为)为静态多线程调试,即使运行时库设置为多线程调试DLL

(VS13)mysqlclient.lib编译(我认为)为静态多线程调试,即使运行时库设置为多线程调试DLL,mysql,visual-studio-2013,linker,Mysql,Visual Studio 2013,Linker,我正在尝试将mysqlclient.lib库编译为多线程调试DLL。我需要它在此配置中能够链接到我的项目。为了提供一些背景,我将解释到目前为止我所做的工作: 我克隆了MySQL存储库:git clonehttps://github.com/mysql/mysql-server.git 我通过运行CMake创建了MySQL.sln 我在Visual Studio 2013中打开了该解决方案,并使用等于/MDd的运行时库设置构建了它 我已尝试将这样编译的库mysqlclient.lib链接到我的项目

我正在尝试将mysqlclient.lib库编译为多线程调试DLL。我需要它在此配置中能够链接到我的项目。为了提供一些背景,我将解释到目前为止我所做的工作:

  • 我克隆了MySQL存储库:
    git clonehttps://github.com/mysql/mysql-server.git
  • 我通过运行CMake创建了MySQL.sln
  • 我在Visual Studio 2013中打开了该解决方案,并使用等于/MDd的运行时库设置构建了它
  • 我已尝试将这样编译的库mysqlclient.lib链接到我的项目(使用/MDd编译),但仍然收到错误:

    mysqlclient.lib(plugin_client.obj):错误LNK2038:检测到“RuntimeLibrary”不匹配:值“MTd_StaticDebug”与main.obj中的值“MDd_DynamicDebug”不匹配

  • 我已经运行了
    dumpbin/all mysqlclient.lib | find/I“mvscr”
    获取结果
    /DEFAULTLIB:msvctd
    ,这表明库已编译为/MDd

  • 我必须承认,在想将mysqlclient.lib链接到我的项目之前,我甚至不知道运行库设置。此时,我不完全理解为什么我会出现上面的链接器错误,这就是为什么我在标题中写道,我认为库仍然被编译为/MTd。如果有人能为我指出解决问题的正确方向,我将不胜感激

    编辑 通过更好地阅读MySQL文档,我发现如果我的项目构建为/MDd或/MD,我必须将其链接到libmysql.dll动态库。第二至最后一段,在Microsoft Windows上编译MySQL客户端。