今天谢了一些功能需要用到c++11的std::function和std::bind,开发的时候是用windows的,include好头文件
ios下把自己的工程和cocos2dx的工程都做同样配置,工程属性中从Basic改为All,才能看见需要修改的属性。Build Settings->Deployment->IOS Deployment Target 选择5.0以上,因为libc++至少需要5.0。Build Settings->Apple LLVM 5.0 -Language – C++->C++ Language Dialect选择GNU++11(–std=gnu++11),c++11应该也可以。Build Settings->Apple LLVM 5.0 -Language – C++->C++ Standard Library选择libc++,提示有c++11支持的。再在Build Phases->Link Binary With Libraries里面添加libc++.dylib,点+号再搜索libc++就能找到。确保配置两个工程的Targets属性而不是product属性,当然product属性也可以修改为一样的。clean,build就可以编过了。自己的工程和cocos2dx的工程一定要全部配置一样的属性。因为如果是链接出错的错误一般都是出在std::string上,而libc++的实现和标准库的实现是不过一样的,如果不出链接错误,会在运行是crash,所以libc++会把std::string定义到std::__1::bash_string产生链接错误而避免运行异常,这个也是在google上查到的。
mac下配置类似,只是Deployment Target选择的是OS X 10.7,其他的都一样,也是确定是配置的两个工程的Targets属性。clean,build就可以了。
2013
12-20
12-20