GTEST测试项目链接链接到其他可执行文件
Gtest test project link to other executable
我有一个项目,我添加了一个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
如何简单地制作一个测试项目和包装项目来启动一个普通项目(在调试和发布模式下起作用)?
修复:
- 在SimpleCalc(调试)中,将
Project | Properties | General | Configuration type
更改为Static Library
。这就是为什么发布工作但没有调试的原因。 - 对于SimpleCalcWrapper,选择
Project | Add reference...
并添加SimpleCalc。这就是为什么SimpleCalcWrapper不起作用的原因。 - 对于SimpleCalctest(发布),重置为默认
Project | Properties | Linker | Advanced | Import Library
或SimpleCalctest.exe不会编译。 - 对于SimpleCalctest,将
Project | Properties | C/C++ | Additional Include Directories
更改为$(SolutionDir)gtestinclude;$(SolutionDir)SimpleCalc;%(AdditionalIncludeDirectories)
。这将使它们相对于项目。 - 对于SimpleCaltctest,将
Project | Properties | Linker | Additional Library Directories
更改为$(SolutionDir)gtest;%(AdditionalLibraryDirectories)
-您不需要SimpleCalc目录,因为该项目已添加到参考中。 - 对于SimpleCalcWrapper,将
Project | Properties | C/C++ | Additional Include Directories
更改为$(SolutionDir)SimpleCalc;%(AdditionalIncludeDirectories)
- 对于SimpleCalcWrapper,重置为默认
Project | Properties | Linker | Additional Library Directories
-您不需要SimpleCalc目录,因为该项目已添加到参考中。
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- 使用 CMake 与其他静态库链接的静态库 - 一个有效,一个无效。为什么?
- 使用 pybind11 构建库,链接其他共享库
- 当其他链接库链接 stdc++ 为动态时,如何将 libstdc++ 链接设置为静态?
- 可视C++ - 从链接器>输入>其他依赖项中排除文件
- 叮当格式在单行上链接其他 ifs
- 如何链接由CMAKE在其他目录上生成的库
- 仅一个功能的链接错误.在同一类和CPP文件中具有相似签名的其他函数工作正常
- 如何将GCC中的静态库与其他动态库链接
- 如何链接一个使用其他库的静态C库
- D3D9 Direct3DCreate9() 链接器错误,但所有其他 D3D 函数都有效
- 为什么需要双指针来更改头部,而不是链接列表中的其他地方
- C 链接列表仅输出其他每个元素
- GTEST测试项目链接链接到其他可执行文件
- 为什么我需要将 -lstdc++ 添加到我的其他链接器标志中
- 在C++中,我们如何将插入运算符和其他运算符链接在一起
- 与其他库链接的静态库-LINKER警告
- C链接程序并在主函数上使用其他程序的方法(数独)
- 如何在动态链接其他库时静态链接 libgomp
- GCC 链接器:静态 A 在链接其他共享库时看不到静态 B