错误LNK1104无法打开文件'gtest.lib'

时间:2015-11-13 22:11:58

标签: googletest

我正在尝试使用visual studio 2012安装名为CarlSim的神经网络工具箱,他们在代码中使用gtest。我尝试通过在线下载并使用gtest.sln文件构建来安装gtest。它给了我两个警告。我想这两个警告是造成这个错误的原因。但我不知道如何解决这个问题。 gtest似乎只能构建gtestd.lib。 以下是安装神经网络工具箱时的错误

Error   2   error LNK1104: cannot open file 'gtest.lib' C:\Users\Dukerama\Desktop\CarlSim\carlsim\test\LINK carlsim_tests

以下是gest的警告。

    1>------ Rebuild All started: Project: gtest, Configuration: Debug Win32 ------
1>  gtest-all.cc
1>C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppBuild.targets(1299,5):      warning MSB8012: TargetPath(C:\Users\Dukerama\Desktop\gtest\gtest-  1.6.0\msvc\gtest/Debug\gtest.lib) does not match the Library's OutputFile property value (C:\Users\Dukerama\Desktop\gtest\gtest-1.6.0\msvc\gtest\Debug\gtestd.lib). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Lib.OutputFile).
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppBuild.targets(1301,5): warning MSB8012: TargetName(gtest) does not match the Library's OutputFile property value (gtestd). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Lib.OutputFile).
1>  gtest.vcxproj -> C:\Users\Dukerama\Desktop\gtest\gtest-1.6.0\msvc\gtest/Debug\gtest.lib
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

2 个答案:

答案 0 :(得分:0)

您发布的VS中的构建命令输出表明,gtest的VS项目属性中的某些值之间存在不一致(位于'配置属性 - >常规'并且在&#中39;配置属性 - >图书馆员 - >一般')。但是,输出还表明gtest库是在位置构建的:

C:\Users\Dukerama\Desktop\gtest\gtest-1.6.0\msvc\gtest/Debug\gtest.lib

您应该将此文件放在CarlSim工具箱期望找到gtest库的目录中。您可以在CarlSim的VS项目属性中找到它('配置属性 - >链接器 - >常规 - > AdditionalLibraryDirectories')。

P.S。 确保gtest和CarlSim都链接到同一个运行时库,否则会出现更多的链接器错误。您可以在'配置属性 - >中检查VS项目属性中的运行时库。 C / C ++ - >代码生成 - >运行时库'。

答案 1 :(得分:0)

我遇到了同样的问题。 不幸的是,提议的解决方案对我没有帮助。 就我而言,该构建在我的 PC 上正常运行,但在同事的 PC 上出现错误。 我们解决了将项目移动到路径较短的新位置的问题。