求助:使用第三方库时候 链接错误 Undefined symbols for architecture i386:

baggio 发布于 2013年09月02日
无人欣赏。

Undefined symbols for architecture i386: "FMODEventSystemCreate",referenced from: FMOD::EventSystemCreate(FMOD::EventSystem**) in libCocosUnicorn.a(UniAudio.o) 具体是这样的,libCocosUnicorn.a是我本地建立的静态工程生成的库,在CocosUnicorn这个静态工程 中的UniAudio.cpp我调用了第三方库中FMOD::EventSystem_Create()这个函数,我在工程中设置中 Link Binary With Libraries加入了fmod提供的.a文件,并且在Compile Sources中加入了fmod提供的头文件,库的包含路径也设置了,编译通过 最后链接的时候出现上述问题,在网上找了一大堆都没有找到解决方案,跪求高手些不吝赐教,十分感谢

共8条回复
tinyfool 回复于 2013年09月02日

这句话的意思是i386架构下没有这个函数

你生成的.a是什么架构的?是不是模拟器运行的时候报的错,换成真机是不是就对了?

真机是arm架构,模拟器i386

nekoP 回复于 2013年09月02日

try clean.

tinyfool 回复于 2013年09月02日

楼上好主意

baggio 回复于 2013年09月02日

我这个工程生成的.a是arm架构,第三方库提供了两种架构的.a文件,我通过lipo合并成一个库使用,现在就是在模拟器运行时候报错,那想在模拟器编译通过怎么改呢 tinyfool大哥

baggio 回复于 2013年09月02日

对了,我这个开发环境不是苹果电脑,只是在普通机器上装了mac系统,不能真机运行,只能模拟器运行,跟这个有没有关系?

tinyfool 回复于 2013年09月02日

跟普通机器倒是没关系,你生成.a如果是arm的话,另外一个库是双架构的话,和在一起的话,它其实也就是说只有arm是齐全的啊

不同的架构就是不同的二进制代码,你的.a不存在i386,用lipo来合并也不会凭空产生i386的

此外,还是强烈建议不要黑苹果做开发

cnsoft 回复于 2013年09月03日

不推荐黑苹果是技术原因么? 还是道德归约. 或者黑苹果更容易出现莫名其妙的问题? 其实是黑mac的话 有idp 签名 也可以跑真机吧. XD

baggio 回复于 2013年09月05日

问题已解决,谢谢大家的热情回答,原因有二,一是库的架构不匹配,二是第三方库不全问题造成,再次感谢

登录 或者 注册