错误"Cannot open include file",但它不包含在代码中

error "Cannot open include file", but it's not included in code

本文关键字:包含 代码 open Cannot include file 错误      更新时间:2023-10-16

在Visual Studio 2012中安装十一月CTP后,我收到了错误。错误在boost库的unordered_set.hpp中。但我没有在代码中的任何地方包含unordered_setinitializer_list。我只在一个文件中使用了boost,我确信这不是原因。

unrdered_set.hp:中的错误

#if !defined(BOOST_NO_0X_HDR_INITIALIZER_LIST)
#include <initializer_list>  //error C1083: Cannot open include file: 'initializer_list': No such file or directory d:boostunorderedunordered_set.hpp
#endif

编辑:

之后我卸载了十一月的CTP,但仍然得到了同样的错误。

C++11在VS2012中默认启用。来自boost标题

#if !defined(BOOST_NO_0X_HDR_INITIALIZER_LIST)
#include <initializer_list>
#endif

您可以尝试定义BOOST_NO_0X_HDR_INITIALIZER_LIST,或查找initializer_list标头位置。

// config/suffix.hpp
#if defined(BOOST_NO_INITIALIZER_LISTS) && !defined(BOOST_NO_0X_HDR_INITIALIZER_LIST)
#  define BOOST_NO_0X_HDR_INITIALIZER_LIST
#endif
// config/compilers/visualc.hpp
#if _MSC_VER <= 1500  || !defined(BOOST_STRICT_CONFIG) // 1500 == VC++ 9.0
#  define BOOST_NO_INITIALIZER_LISTS
#endif

CCD_ 8可以在CCD_。

然而,看起来您没有现代的Visual C++标头,这很奇怪,因为您有VS2012(实际上initializer_list标头将在VS2010中添加)。

今天也遇到了同样的问题,我发现安装十一月的CTP是不够的,你需要将项目配置下的平台工具集更改为Microsoft Visual C++ Compiler Nov 2012 CTP (v120_CTP_Nov2012)才能真正使用新功能,希望这对任何人都有帮助。