【发布时间】:2012-09-29 20:15:12
【问题描述】:
我正在尝试在 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
我认为主要原因是编译器,我尝试更改一些设置并使用编译器但每次出现新错误时,这里是我当前的编译器设置,
- C 语言方言 - C99[-std=c99]
- C++ 语言方言 - C++98[-std=C++98]
- C++ 标准库 - libstdc++
Boost 版本是 1.44.0, XCode 版本为 4.5
有人知道我必须如何配置我的项目以在 iOS 下编译 boost 吗?
【问题讨论】:
-
尝试包括
<stdio.h>而不是<cstdio>并调用vsnprintf而不是std::vsnprintf。有点杂乱无章,但如果你的编译器不完全兼容 C++11,你别无选择。 -
我无法进行更改,因为 c++locale.h 中的错误不是我的文件而是系统文件 :((@DavidHammen
-
你在网上搜索过这个问题吗?它无处不在,解决方案也是如此。显然,您在工具的“标题搜索路径”菜单中启用了“递归”复选框。取消选中它。