Boost win compile:int32_t不是全局命名空间的成员

时间:2014-04-18 19:49:05

标签: c++ boost

尝试在Windows 8.1上编译boost库时,我收到此错误:

error C2039: 'int32_t' : is not a member of '`global namespace''

来自boost\cstdint.hpp

这就是我的所作所为:

  • 下载了源
  • 发起了bootstrap.bat
  • 发起了b2 toolset=msvc --build-type=complete stage

有谁知道原因可能是什么以及如何解决?

1 个答案:

答案 0 :(得分:0)

我有一个类似的问题,用Visual Studio 2010编译Boost 1.56.0 Regex库的新解压缩:

...\VC\INCLUDE\cwchar(33) : error C2039: 'wcscat' : is not a member of '`global namespace''

事实证明我无意中修改了我的VS2010 VC\include文件夹下的一些核心包含文件。某些文件在解决方案的替换文件期间已被修改。

我使用Win7 以前的版本标签来恢复原始文件,现在它编译得很好。

当你对核心库文件进行写访问时会出现此问题,例如

  • 您正在以管理员身份运行IDE;或
  • 您已在除C:\Program FilesC:\Program Files (x86)以外的位置安装了Visual Studio。这些标准位置具有特殊的默认文件和文件夹安全性(访问控制列表),可防止以受限用户身份运行时出现此类错误。

(我的问题是由于后者;我已经将更多限制性文件和文件夹ACL应用于我所有与应用程序相关的定制文件夹,以便在作为受限用户运行时保护我。)