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

时间:2016-02-19 13:17:03

标签: mysql visual-studio-2013 linker

我试图将 mysqlclient.lib 库编译为多线程调试DLL。我需要在此配置中将其链接到我的项目。为了给出一些背景,我将解释到目前为止我做了什么:

  1. 我克隆了MySQL存储库:git clone https://github.com/mysql/mysql-server.git
  2. 我通过运行CMake创建了 MySQL.sln
  3. 我在Visual Studio 2013中打开了解决方案,并在运行时库设置等于 / MDd 的情况下构建了它。
  4. 我试图将这样编译好的库 mysqlclient.lib 链接到我的项目(使用 / MDd 编译),但我还是得到错误:

    mysqlclient.lib(plugin_client.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' in main.obj

  5. 我已经运行dumpbin /all mysqlclient.lib | find /i "mvscr"获取结果/DEFAULTLIB:MSVCRTD,表明该库已编译为 / MDd

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

    修改

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

0 个答案:

没有答案