为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用Visual Studio 2005设置Google C ++测试框架(gtest)

如何使用Visual Studio 2005设置Google C ++测试框架(gtest)

慕的地8271018 2019-10-06 13:08:35
它没有在网站上记录,人们似乎在建立框架时遇到问题。有人可以显示示例项目设置的分步介绍吗?
查看完整描述

3 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

Arlaharen所说的基本上是正确的,只是他省略了解释您的链接器错误的部分。首先,您需要在没有CRT的情况下将应用程序构建为运行时库。无论如何,您始终应该这样做,因为它确实简化了应用程序的分发。如果您不这样做,那么所有用户都需要安装Visual C ++运行时库,而那些没有这样做的用户将抱怨系统上缺少神秘的DLL ...链接所花费的额外数百KB静态地使用CRT,在以后的支持中您省去了很多麻烦(请相信我-我已经学到了很难的方法!)。

无论如何,要执行此操作,请转到目标的属性-> C / C ++->代码生成->运行时库,对于您的Release版本,需要将其设置为“多线程”,对于目标版本,则需要将其设置为“多线程调试”您的调试版本。

由于GTEST库建立在以同样的方式,你需要确保你链接的正确版本的,否则链接器会拉在运行时库的另一个副本,这是你看到的错误(顺便说一句,这如果您使用的是MFC,则不会有任何区别)。您需要将gtest构建为Debug和Release模式,并保留两个副本。然后,在Release版本中链接gtest.lib / gtest_main.lib,在Debug版本中链接gtestd.lib / gtest_maind.lib。

另外,您需要确保您的应用程序指向存储gtest头文件的目录(在属性-> C / C ++->常规->其他包含目录中),但是如果遇到链接器错误,我认为您已经设法使此部分正确,否则首先会有更多编译器错误需要处理。


查看完整回答
反对 回复 2019-10-06
?
喵喔喔

TA贡献1735条经验 获得超5个赞

如果不想编写自己的main()进行测试,则可以使用gtest_main.lib中定义的main()函数,但会在VS2012中收到链接器错误“必须定义入口点”。在您的测试项目中,将ProjectProperties-> Linker-> System-> SubSystem设置为“ Console”,因为这将强制VS2012查找名为“ main()”的入口点,并在gtest_main.lib中找到它(前提是已链接)它正确地)。


查看完整回答
反对 回复 2019-10-06
  • 3 回答
  • 0 关注
  • 803 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信