GTEST测试项目链接链接到其他可执行文件

Gtest test project link to other executable

本文关键字:链接 其他 可执行文件 GTEST 项目 测试      更新时间:2023-10-16

我有一个项目,我添加了一个gtest项目,然后将原始项目变成了一个.lib项目,并从第三个新项目中称为Main()函数。这样,我可以使用项目.exe构建测试.EXE。除了,它不起作用。

这些是我所遵循的步骤
创建或打开一个项目,然后为其创建Win32控制台应用程序测试项目。
右键单击测试项目,转到属性,然后将配置设置为调试。
转到配置属性> c/c > 常规> 附加包含目录,并添加GTEST INCER INCER INCER INCER INCER INCEL。


在代码生成> 运行时库下,选择MDT或MTD;项目所用的任何要测试的内容。
在Linker > 常规> 其他库目录中,请使用gtestd.lib。
添加引用在输入下> 其他依赖项,添加gtestd.lib。
右键单击测试项目,转到属性,然后设置配置以发布,然后执行步骤3和4。
在Linker > enterion general > 附加库目录中,请添加使用gtest.lib的文件夹。
在输入下> 其他依赖项,添加gtest.lib。

这些是我遵循的链接测试项目的步骤,如下所述
右键单击测试项目,转到构建依赖项> 项目依赖项,然后添加要测试的项目。
转到properties > C/C > 常规> 附加包括目录,并包括项目的标题进行测试。


在Linker > INPUT下,> 其他依赖项,输入项目的.lib文件

这是问题
由于某种原因,测试项目令人惊讶地有效,但仅在发布模式下。尽管具有与测试项目相同的设置,但包装器项目在两种模式下都无法使用。我研究了20种可能的解决方案,但尚未找到一种解决方案。我还尝试了图书馆项目中的每种方法前面的 __ extspec(dllexport),但这并不是任何公正。VS正在与我打架。

我尝试过的其他东西
每次我需要测试时,我都不想更改项目来构建.lib。因此,我研究了使用Pre-Link构建事件从项目中创建A .EXE .lib ,但似乎只采用控制台命令,我无法找出如何从我从另一个So答案中获得的控制台命令连接产生的.lib文件。

这是具有这些问题的当前.sln文件。URL是绝对的:https://drive.google.com/file/d/0b6r81tgw7hodexnpr3roc3hymwc/view?usp = sharing

如何简单地制作一个测试项目和包装项目来启动一个普通项目(在调试和发布模式下起作用)?

修复:

  1. 在SimpleCalc(调试)中,将Project | Properties | General | Configuration type更改为Static Library。这就是为什么发布工作但没有调试的原因。
  2. 对于SimpleCalcWrapper,选择Project | Add reference...并添加SimpleCalc。这就是为什么SimpleCalcWrapper不起作用的原因。
  3. 对于SimpleCalctest(发布),重置为默认Project | Properties | Linker | Advanced | Import Library或SimpleCalctest.exe不会编译。
  4. 对于SimpleCalctest,将Project | Properties | C/C++ | Additional Include Directories更改为$(SolutionDir)gtestinclude;$(SolutionDir)SimpleCalc;%(AdditionalIncludeDirectories)。这将使它们相对于项目。
  5. 对于SimpleCaltctest,将Project | Properties | Linker | Additional Library Directories更改为$(SolutionDir)gtest;%(AdditionalLibraryDirectories)-您不需要SimpleCalc目录,因为该项目已添加到参考中。
  6. 对于SimpleCalcWrapper,将Project | Properties | C/C++ | Additional Include Directories更改为$(SolutionDir)SimpleCalc;%(AdditionalIncludeDirectories)
  7. 对于SimpleCalcWrapper,重置为默认Project | Properties | Linker | Additional Library Directories-您不需要SimpleCalc目录,因为该项目已添加到参考中。