Cocos2d-x iOS 编译,Undefined symbols for architecture armv7: "res::playTypes",

Undefined symbols for architecture armv7:
“res::playTypes”, referenced from:
AppDelegate::socketReceiver(int, int, ByteBuffer*) in AppDelegate.o
“SocketDataProcess::parseRegistBackData(ByteBuffer*)”, referenced from:
AppDelegate::socketReceiver(int, int, ByteBuffer*) in AppDelegate.o


很多一类错误,凡是静态调用方法或者变量都会这样。

感觉是头文件的问题,求教!谢谢。

补充一下,我没有把 Clasess下的新的文件拷贝或者通过add files加入到工程中,而是用把classes目录添加到Header search path的方法。
(之所以这样,是因为add files 无论怎么设置,都会报找不到#include xxdir/xxfile.h找不到,得用#include xxfile.h但又会影响android)

res::playTypes的实现贴出来看一下吧。包括.h和.cpp。

谢谢,我不知道怎么弄searchpath之类的,就好了。
只是现在luajit又用不了。

mac10.8,xcode5.0.2,我直接用cocos2dx-2.2.6。。。里面的liblua.a 或者libluajit.a 都会报很多的Undefined symbols for architecture armv7。然后我网上找了一个声称支持cocos2dx-3.3.1 +arm64 libluajit.a 来用,就只报一个错误:

ld: warning: ignoring -seg1addr 0x100000000. Address out of range.
Undefined symbols for architecture armv7:
“cocos2d::CCLuaEngine::defaultEngine()”, referenced from:
LuaCallCpp::receiverSocketData(int, int, ByteBuffer*) in LuaCallCpp.o
AppDelegate::applicationDidFinishLaunching() in AppDelegate.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我估计这还是库文件不支持armv7。


然后我就想用cocos2dx-2.2.6/script/lua/luajit/里面的build_ios.sh来编译,结果又说找不到gcc,
接着我根据网上的文章,把clang连接到gcc,改了build_ios.sh。

编译又报好多:error: unknown type name ‘__uint32_t’

结果是:fatal error: too many errors emitted, stopping now [-ferror-limit=]

不知道怎么办了。

我做的项目用了lua,httpclient(curl),先在windows下,用vs运行成功。
总结我这一周的折腾,在windows下运行成功,iOS打包注意:

1、resources所有图片add files到xcode项目中
2、所有classes下增加的add files到xcode项目中
3、scripting/lua下的lua、tolua、xxtea、cocos2dx-support
4、libcurl是我自己编译的,网上找的文章,liblua是别人给的现成的。

有类似问题的,发邮件给28181306@qq.com。我懂的会回你邮件。

官方的文档实在乱,应该考虑市场对各种版本的使用情况,每个出个新手全面教程。
真的好多坑,我们不是已经折腾了3周,加上时间紧迫,早改用unity了。

稳定是第一位的,功能再多不稳定,不好用,版本乱,都会让人受不了。