由于其他依赖库,在 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 的相关文章

  • .crt 部分?这个警告是什么意思?

    我最近收到此警告 VC 2010 warning LNK4210 CRT section exists there may be unhandled static initializers or terminators 我假设这是关键部分
  • 为什么无法在 F# 项目中添加子文件夹?

    在大多数 NET项目中 我可以使用文件夹来组织代码文件 在 C 中 我不能 但过滤器最终会扮演相同的角色 但是 在 Visual Studio 2010 中的 F 中 我不能 每个代码文件都直接显示在项目目录中 为什么这个功能不可用 组织包
  • Visual Studio 2010:依赖图

    我有VS 2010专业版 我可以使用 依赖图 做什么 我没有 建筑 版本 有没有我可以使用的免费插件 如果没有 是否有任何免费的第三方工具可以帮助我做同样的事情 Thanks 我需要类似的东西 但不想付费 或安装 工具来完成它 我创建了一个
  • IntelliSense:对象具有与成员函数不兼容的类型限定符

    我有一个名为 Person 的类 class Person string name long score public Person string name long score 0 void setName string name voi
  • 获取谷歌测试异常抛出消息[重复]

    这个问题在这里已经有答案了 我正在为我的项目使用谷歌测试框架 我从代码中抛出异常 throw DerivedClassException message 并在测试框架中使用 ASSERT THROW commond DerivedClass
  • 测试夹具中的设置与构造函数

    为什么测试装置在 Google Test 中有 SetUp 方法 构造函数实际上不是同一件事吗 对于 TearDown 方法也是如此 对 SetUp 和 Constructor 以及 TearDown 和 Destructor 的调用与 T
  • 如何查找 Visual Studio 项目中缺少的文件?

    由于合并等问题 我们有很多项目文件不包含其文件夹中的所有源代码文件 在我编写一个小工具之前 它会检查每个 cs文件包含在项目文件中 我希望确保之前没有其他人已经这样做过 我们有近 100 个项目文件和 1000 个 C 文件 显然 Visu
  • CRT 虚拟析构函数

    我今天遇到了由于我的 dll 和实际项目中的不同 CRT 设置 MTd MDd 导致的堆损坏 我发现奇怪的是 只有当我将 dll 中的析构函数设置为虚拟时 应用程序才会崩溃 有一个简单的解释吗 我知道我无法释放不在堆上的内存 但是当我将析构
  • MSVC10 /MP 在项目中跨文件夹构建非多核

    我希望有人指出我们所遇到的错误或解决方法 使用 MP 编译项目时 似乎仅同时编译同一文件夹中的文件 我使用进程资源管理器来滑动命令行并确认行为 项目过滤器似乎对同时编译的内容没有影响 项目结构disk Folder project vcxp
  • 如何替换 Visual Studio/TFS 2010 中的合并工具 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何修改我的设置以允许 VS2010 从“未经授权的区域”加载第 3 方 XSD 文件?

    我在 Visual Studio 2010 中打开了第 3 方 XSD 文件 该文件从同一第 3 方的其他架构文件导入命名空间 在架构文件的 XML 编辑器视图中 xs import 元素带有下划线 并显示以下错误 请求类型为 System
  • 我的 WPF 应用程序未触发 MainWindow_Loaded

    我目前正在关注Pluralsight C Fundamentals Part 1并在Classes and Objects视频部分指导我在 Visual Studio 中创建一个新的 WPF 应用程序并填写代码 这导致以下结果 namesp
  • 使用 gtest 模拟 boost 共享内存派生类

    我有一个简单的 CPP 类 存储项目的一些配置 此类使用 boost 进程间共享内存进行存储 因此可以从我的服务器上运行的不同进程进行访问 现在 我想对我的程序运行一些测试 所以我想模拟我的共享内存对象的功能 为了使用 gtest 做到这一
  • 针对架构 armv7 的 iOS 链接器错误的 Google 转化跟踪

    我正在尝试将 iOS 版 Google 转化跟踪功能添加到我的 iPhone 应用程序中 该应用程序的基础 SDK 是 iOS6 该应用程序的有效架构是armv7 armv7s 该应用程序的 iOS 部署目标是 4 3 我正在使用最新的 x
  • Visual Studio 2010 中的源代码控制?

    在对 SO Google 和 MSDN 论坛进行了一些搜索之后 我感到很沮丧 因为对于一个看似显而易见的问题 甚至可能是一个愚蠢的问题 信息太少 我需要在 Visual Studio 2010 Professional 中使用源代码管理 我
  • WIF、STS 和会员表

    我目前正在考虑将 WIF 用于即将进行的项目 并且希望获得一些帮助查找信息 我环顾四周 并没有明确的答案 我当前有一个依靠 ASP 会员资格运行的站点 并且这些表中有大量用户 是否有任何值得信赖的自定义 STS 使用会员资格 桌子 我当前使
  • 编译器特定的内存初始化

    有没有办法保证整个程序中某些对象的静态对象初始化顺序 我有内存分配器 我希望将其作为程序中的第一件事进行分配 因为它们将在整个程序的其他地方使用 并且我想使用这些分配器来分配所有后续内存 我知道这可能是特定于编译器的 因为我不相信 C 标准
  • 对符号“pthread_key_delete@@GLIBC_2.2.5”的未定义引用

    我正在尝试在 Ubuntu 中创建一个文件 当我创建时 我不断收到此错误 usr bin ld gtest 1 7 0 libgtest a gtest all cc o undefined reference to symbol pthr
  • 在一个解决方案中调用不同项目的方法

    1 个解决方案中有 3 个项目 我对第一个项目中的主文件进行的主要操作 但是我需要调用第三个项目中的方法并使用类 例如 第三个项目有 public DataClasses1DataContext base global WindowsFor
  • 禁止显示“资源名称不是有效标识符”

    我有一个包含 5000 多个资源字符串的项目 几乎所有的标识符中都有句点 我们正在切换到自动生成强类型类 当然 由于周期的原因 我们看到了几千条警告 资源名称 blah 不是有效的标识符 我知道不是 生成器将句点更改为下划线 一切都很好 我

随机推荐

  • 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 构建 该项目有许多静态和动态链接的依赖库 其中