我正在尝试在Visual Studio中构建gtest,但似乎在获取引用时遇到了一些问题,并为项目正确指定了包含。
错误C1083:无法打开包含文件:'gtest / gtest.h':没有这样的文件或目录c:\ gtest-1.6.0 \ src \ gtest-all.cc
1>InitializeBuildStatus:
1> Touching "Debug\GTestBuild.unsuccessfulbuild".
1>ClCompile:
1> gtest-all.cc
1>c:\gtest-1.6.0\src\gtest-all.cc(40): fatal error C1083: Cannot open include file: 'gtest/gtest.h': No such file or directory
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:01.61
在项目中,我在项目项目页面中添加了> C / C ++>附加包含目录列出了对以下内容的引用:
c:\gtest-1.6.0 c:\gtest-1.6.0\src c:\gtest-1.6.0\include c:\gtest-1.6.0\include\gtest
但我似乎错过了其他一些包含或者可能没有设置正确,并希望在解决这个方面有所帮助,并学习如何为将来做这件事。
PS。从
切换#include "gtest/gtest.h"
// The following lines pull in the real gtest *.cc files.
#include "src/gtest.cc"
#include "src/gtest-death-test.cc"
#include "src/gtest-filepath.cc"
#include "src/gtest-port.cc"
#include "src/gtest-printers.cc"
#include "src/gtest-test-part.cc"
#include "src/gtest-typed-test.cc"
要
#include <gtest/gtest.h>
// The following lines pull in the real gtest *.cc files.
#include <src/gtest.cc>
#include <src/gtest-death-test.cc>
#include <src/gtest-filepath.cc>
#include <src/gtest-port.cc>
#include <src/gtest-printers.cc>
#include <src/gtest-test-part.cc>
#include <src/gtest-typed-test.cc>
不是解决方案。我试过这个并没有用。
答案 0 :(得分:2)
如果您在文件页面中查找文件gtest-all.cc,其附加包含目录字段应显示:
..;..\include;%(AdditionalIncludeDirectories)
如果您使用了提供的msvc \ gtest.sln,或者:
C:/gtest-1.6.0/include;C:/gtest-1.6.0;%(AdditionalIncludeDirectories)
如果您使用CMake创建VS解决方案。
如果该字段为空,则表示没有获取为整个项目设置的目录,因为它们是通过%(AdditionalIncludeDirectories)
变量应用的。如果这个 的情况下,可能值得重新下载并重新开始,因为构建不再良好。
答案 1 :(得分:0)
检查完整的编译输出以查看这些包含目录是否正在合并到编译中。它应该看起来像:
...
-Ic:\gtest-1.6.0 -Ic:\gtest-1.6.0\src -Ic:\gtest-1.6.0\include -Ic:\gtest-1.6.0\include\gtest
...
您是否在这些目录中查找了文件?不要忘记,当您将其包含在目录中时,您必须在以下目录中查找gtest.h
:
c:\gtest-1.6.0\gtest
c:\gtest-1.6.0\src\gtest
c:\gtest-1.6.0\include\gtest
c:\gtest-1.6.0\include\gtest\gtest
(请注意使用gtest
)
#include "gtest/gtest.h"
子目录