为什么 Visual Studio 找不到 'tr1/unordered_map?
我想在项目中使用 google-ctemplate 。但是,如果我包含基本文件,则会出现以下错误(使用 Visual Studio C++ 2005):
Error 1 fatal error C1083: Cannot open include file: 'tr1/unordered_map': No such file or directory f:\entwicklung\libraries\ctemplate-0.99\src\ctemplate\template_cache.h 39
我可以在 boost 目录中找到 unordered_map.hpp,并且 boost 目录是在 Visual Studio 的包含路径中设置的。我该如何解决这个问题?
I want to use google-ctemplate in a project. But if I include the basic file, I get the following error (with Visual Studio C++ 2005):
Error 1 fatal error C1083: Cannot open include file: 'tr1/unordered_map': No such file or directory f:\entwicklung\libraries\ctemplate-0.99\src\ctemplate\template_cache.h 39
I can find the unordered_map.hpp in the boost-directory and the boost-directory is set in the include-path in Visual Studio. How can I solve this problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我发现问题出在哪里了。我从 google-ctemplate 中包含了错误的目录。我必须使用 src/windows 而不是 src。
但这会引发另一个问题,这次是来自链接器。
I found out what the problem was. I included the wrong directory from google-ctemplate. Instead of
src
I have to usesrc/windows
.But that triggers another Problem, this time from the linker.
现在,您可以使用:
或者,将 $(boost-directory)/boost/tr1/tr1 添加到包含路径并使用:
请参阅此 标题包含样式了解更多详细信息。
注意:我假设 $(boost-directory) 设置为类似“C:\boost_1_46_0”的值。
As is, you can use:
Alternatively, add your $(boost-directory)/boost/tr1/tr1 to the include path and use:
See this Header Include Style for more details.
Note: I'm assuming $(boost-directory) is set to something like "C:\boost_1_46_0".
考虑到 TR1 直到 2005 年夏天才发布,我不会对它没有出现在 VS 2005 中感到惊讶。您可以尝试更新版本的编译器!
Considering that TR1 was not published until the summer of 2005, I wouldn't be surprised that it isn't present in VS 2005. You might try a more up-to-date version of the compiler!