命名空间'std'中没有名为'vsnprintf'的成员;你是说'vsprintf'吗?

时间:2012-10-09 13:22:14

标签: c++ ios c macos boost

我正在尝试在iOS下编译boost,但每次我尝试启动项目时都会出现错误:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/include/c++/4.2.1/bits/c++locale.h:79:28: No member named 'vsnprintf' in namespace 'std'; did you mean 'vsprintf'?
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/include/c++/4.2.1/bits/c++locale.h:79:60: Too many arguments to function call, expected 3, have 4

我认为主要原因是编译器,我尝试更改一些设置并使用编译器但每次出现新错误时,所以这里是我当前的编译器设置,

  1. C语言指南 - C99 [-std = c99]
  2. C ++语言指南 - C ++ 98 [-std = C ++ 98]
  3. C ++标准库 - libstdc ++
  4.   

    Boost版本是1.44.0,   XCode版本是4.5

    有人知道我必须如何配置我的项目才能在iOS下编译boost?

1 个答案:

答案 0 :(得分:3)

根据vsnprintf()的这个参考页面,它是在C ++ 11中引入的,所以代替-std=C++98尝试-std=C++0x(但是,编译器可能不支持C中引入的所有功能) ++ 11)。