【发布时间】:2014-05-15 15:07:39
【问题描述】:
我正在尝试通过build_native.py 脚本为Android 构建一个cocos2d-x 3.0(稳定)项目,但是当一个类使用std::to_string(或std::stoi)函数时它会挂起。在 Xcode 下构建项目完全没有问题,只是命令行编译失败。
我已经在所有使用这些函数的类中导入<string>,但没有成功。我还像这样修改了Application.mk 文件:
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -DCOCOS2D_DEBUG=0 -std=c++11 -Wno-literal-suffix -fsigned-char
添加 -std=c++11 标志以确保使用 C++11 版本编译项目。
我还有什么需要做的吗?
更多
在this thread 之后,我决定加入这个:
#if CC_TARGET_PLATFORM == CC_PLATFORM_MAC || CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID
string to_string(int t) {
ostringstream os;
os << t;
return os.str();
}
#endif
在我的标题中,因为我只是将to_string 与整数输入一起使用。这不是一个好的解决方案,但工作正常......但是当它再次找到 stoi 函数时,编译器会挂起。
【问题讨论】:
-
您可以使用
boost::lexical_cast作为两者的替代品 -
boost库是否与 Androidarm设备和 iOS 兼容? -
我不知道,我对 Android 或 iOS 都不熟悉。但是你应该可以很容易地找到它。
标签: c++ c++11 cocos2d-x cocos2d-x-3.0