由于其他依赖库,在 VS2010 中链接 googleTest 结果为 LNK2005

2023-11-26

我有一个庞大而复杂的项目终于进行了单元测试。我已经使用 Visual Studio 2010 在本地构建了 googleTest 1.6.0,项目文件按照 README 的指定使用 cmake 构建。

该项目有许多静态和动态链接的依赖库。其中许多是专有的。所有链接尝试都会生成 220 个此类错误。这是一个样本:

msvcprtd.lib(MSVCP100D.dll) : 错误 LNK2005: “public: void __cdecl std::_Container_base12::_Orphan_all(void)” (?_Orphan_all@_Container_base12@std@@QEAAXXZ) 已在 gtest.lib(gtest-all.对象)

libcpmtd.lib(cerr.obj) : 错误 LNK2005: “受保护:char * __cdecl std::basic_streambuf >::_Gndec(void)” (?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std @@IEAAPEADXZ) 已在 msvcprtd.lib(MSVCP100D.dll) 中定义

LIBCMTD.lib(setlocal.obj) : 错误 LNK2005: _configthreadlocale 已在 MSVCRTD.lib(MSVCR100D.dll) 中定义

链接:警告 LNK4098:defaultlib 'MSVCRTD' 与其他库的使用冲突;使用 /NODEFAULTLIB:库 链接:警告 LNK4098:defaultlib 'LIBCMTD' 与其他库的使用冲突;使用 /NODEFAULTLIB:库

致命错误 LNK1169:找到一个或多个多重定义的符号

我尝试过 /NODEFAULTLIB 标志,并且按照建议尝试忽略 msvcprtd.lib、MSVCRTD.lib 和 LIBCMTD.lib,但后来我遇到了无法解析的符号...

该项目和 googleTest 都是使用 x64、/MP、/MDd 编译的,并且没有 /clr。

我一直在研究编译器标志,想知道是否存在某种版本不匹配。就我的理解而言,Dumpbin 并没有暗示任何我可能理解的内容。我本来希望有一个呃


看来您的问题已在 Google Talk 中得到解答FAQ。确保所有库都使用 /MD(d) 设置。

如果您尝试将您的测试项目与 Google 测试库链接,但您的项目和 Google 测试库不是使用相同的编译器设置构建的,则可能会收到以下一些链接器错误或警告。

  • LNK2005:符号已在对象中定义
  • LNK4217:在函数“function”中导入本地定义的符号“symbol”
  • LNK4049:导入本地定义的符号“symbol” Google 测试项目 (gtest.vcproj) 将运行时库选项设置为 /MT(使用多线程静态库,/MTd 进行调试)。如果您的项目使用其他内容,例如 /MD(使用多线程 DLL,/MDd 用于调试),则需要更改 Google Test 项目中的设置以匹配您的项目。

要更新此设置,请在 Visual Studio IDE 中打开项目属性,然后选择分支配置属性| C/C++ |代码生成并更改选项“运行时库”。您也可以尝试使用 gtest-md.vcproj 而不是 gtest.vcproj。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

由于其他依赖库,在 VS2010 中链接 googleTest 结果为 LNK2005 的相关文章

随机推荐

  • MySQL 选择 JOIN 3 个表

    我有三个基本表 tblUsers usrID usrFirst usrLast 1 John Smith 2 Bill Jones 3 Jane Johnson pm data id date sent title sender id th
  • WPF 日历:粗体指定日期?

    我正在创建一个窗口 该窗口使用 WPF 日历来浏览在所示月份的指定日期创建的文档 当日历更改月份时 我会在数据库中搜索该月创建的所有文档 并用它来创建该月内包含文档的日期列表 在日历控件中 我想将包含文档的日期加粗 就像 Outlook 将
  • 在 3D 中拟合直线

    是否有任何算法可以从一组 3D 数据点返回直线方程 我可以找到大量的资料来给出 2D 数据集中的直线方程 但没有一个是 3D 的 如果您试图从其他两个值中预测一个值 那么您应该使用lstsq与a参数作为自变量 加上一列 1 来估计截距 和b
  • 加快从 pyodbc 插入 SQL Server 的速度

    In python 我有一个从一个数据库中选择数据的过程 Redshift via psycopg2 然后将该数据插入到SQL Server via pyodbc 我选择执行读 写而不是读 平面文件 加载 因为行数约为每天 100 000
  • jQuery 插件也适用于动态创建的元素

    我正在编写一个 jquery 插件 它应该处理链接上的额外信息以指定打开行为 例如 我想支持如下标记 a href somewhere class openmode a a href somewhere class openmode a a
  • 用于文档创建的元数据中是否有 Firestore 时间戳?

    我想知道 Cloud Firestore 是否在元数据中为每个文档创建时间戳 如果是 该元数据是否可用 我知道我可以出于任意原因在文档中创建自己的时间戳 但我只对文档本身的创建时间感兴趣 提前致谢 对于最新的 firestore beta
  • SQL SERVER 表变量上的非聚集索引?

    如何在表变量上创建非聚集索引 创建表 risk rskid 整数 在 risk rskid 上创建非聚集索引 r rskid nc 这是行不通的 My proc 我该如何优化它 ALTER PROCEDURE dbo SPR LV004 T
  • PostgreSQL + Rails citext

    我正在尝试迁移到使用 PostgreSQL 8 4 的heroku 它有一个 citext 列类型 这很好 因为该应用程序是为 MySQL 编写的 有没有办法将 citext 与 Rails 一起使用 这样如果迁移在 MySQL 上运行 c
  • 如何使用 UIBarButtonSystemItem 更改 UIBarButtonItem 标识符? (迅速)

    我想用代码从 播放 更改为 暂停 来更改 UIBarButtonItem 的标识符 我怎样才能做到这一点 Thanks 1 初始化一个新按钮 change to play let button UIBarButtonItem barButt
  • 有没有办法在异常时启动 Ruby 调试器?

    有没有办法在代码抛出异常时启动 Ruby 调试器 而无需我像这样包装代码 begin do something rescue debugger end 我希望以这样的方式来实现 do something部分引发异常 调试器将启动 如果不必修
  • Java Filter 将未登录的用户重定向到登录页面

    我试图制作一个过滤器来阻止未登录的用户访问某些页面 为此 我制作了一个包含以下内容的过滤器类doFilter method HttpServletRequest request HttpServletRequest req HttpServ
  • 如何使用 Phonegap 重定向至 Android 或 iOS 中的 GPS 设置窗口以打开或关闭 GPS

    我想在 Phonegap 中实现像 Native android 这样的功能 其中当用户想通过按钮单击启用 GPS 时 它将被重定向到 android 或 IOS 的设置部分 以便用户可以点击 GPS 按钮 因为通过编程方式我们无法直接打开
  • 覆盖保存方法 - “ImageFile”对象没有属性“_commissed”

    我重写了保存方法 如下所示 并使用 get thumbnails 和 sorl 保存 但得到错误 ImageFile object has no attribute committed class HotelPhotos models Mo
  • 耙子中止! :name:Symbol 的未定义方法“map”

    我正在尝试将参数传递给 Rake 任务并访问我的模型 如 如何将命令行参数传递给 rake 任务 and Rails rake 任务是否提供对 ActiveRecord 模型的访问 然而添加 gt environment到这段代码 requ
  • 从 Windows 服务器发送 PHP 邮件

    我的页面上有一个表格 当用户点击 发送 按钮时 它应该发送一封电子邮件 其中包含他在表单中输入的详细信息 直到最近 该表单都托管在 Linux 服务器上 我对它没有任何问题 邮件已发送和接收 最近我不得不转移到共享 Windows 服务器
  • 什么是“有限调试信息”? (完整的“调试信息”会生成巨大的EXE文件)

    我最近安装了Delphi XE7 当我第一次编译一个旧应用程序时 当我看到 EXE 的大小增加了 10MB 时 我惊得下巴都掉了 在 项目选项 中 我发现将 调试信息 设置为 有限调试信息 会将 EXE 大小减小到非常接近 Delphi X
  • shell 中棘手的支撑扩展

    当使用 POSIX shell 时 以下内容 touch quick man strong ly 扩展到 touch quickly manly strongly 哪个会触及文件quickly manly and strongly 但是可以
  • 如何实现自定义listview文字动画

    我正在 Android 中创建购物应用程序 在我的应用程序中 我显示自定义列表视图中的项目列表 如果客户选择一个项目 所选项目文本将从列表视图移动到购物车图像中 就像下图一样 This type of animation is my req
  • Postgresql 在树表内复制数据

    我有树形结构的表 列是id category parent id 现在我需要将一个节点及其子节点复制到另一个节点 复制时 类别必须相同 但具有新的 id 和parent id 我的输入将是node to copy destination n
  • 由于其他依赖库,在 VS2010 中链接 googleTest 结果为 LNK2005

    我有一个庞大而复杂的项目终于进行了单元测试 我已经使用 Visual Studio 2010 在本地构建了 googleTest 1 6 0 项目文件按照 README 的指定使用 cmake 构建 该项目有许多静态和动态链接的依赖库 其中