gpt4 book ai didi

c++ - 尝试在 DLL 中使用静态库的 Visual Studio 链接器错误(LNK2038、LNK2005)

转载 作者:太空宇宙 更新时间:2023-11-04 14:30:50 24 4
gpt4 key购买 nike

在 Visual Studio 2013 中,我试图在另一个静态库(比如“MyConn”)中使用静态库 (MySQL Connector/C),并在 DLL 项目中使用它 (MyConn)。静态库构建查找,但尝试构建 DLL 会产生如下链接器错误:

MyConn.lib(plugin_client.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' in doit.obj
LIBCMTD.lib(dbgheap.obj) : error LNK2005: __CrtCheckMemory already defined in msvcrtd.lib(MSVCR120D.dll)

在项目属性中,Configuration Properties --> C/C++ --> Code Generation --> Runtime Library,所有三个项目对各自的构建类型都有相同的设置:

  • 调试 - 多线程调试 DLL (/MDd)
  • 发布 - 多线程 DLL (/MD)

还有哪些其他设置可以解决此问题?

最佳答案

您的 doit.obj 链接到与 MyConn.lib 不同的 MS 运行时库。检查您的项目设置,并确保两个项目的运行时库都设置为 Multithreaded DebugMultithreaded

关于c++ - 尝试在 DLL 中使用静态库的 Visual Studio 链接器错误(LNK2038、LNK2005),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33764739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com