【问题标题】:Two libraries extend EAGLview and I want to use them both. How?两个库扩展了 EAGLview,我想同时使用它们。如何?
【发布时间】:2011-08-22 10:40:15
【问题描述】:

openFrameworkscocos2d 都有EAGLview.h 的包装器,当然你不能同时使用两者。只需将两个库(libcocos2d.alibofxiPhone_iphoneos_Release.a)添加到我的项目中就会出现链接器错误:

ld: duplicate symbol _OBJC_METACLASS_$_ES1Renderer in /Developer/of_007_iphone/apps/cwi007/iTicTacToe/libofxiPhone_iphoneos_Release.a(ES1Renderer.o) and /Developer/of_007_iphone/apps/cwi007/iTicTacToe/libs/libcocos2d.a(ES1Renderer.o) for architecture armv7
collect2: ld returned 1 exit status
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-4.2 failed with exit code 1

我在 openFrameworks 中编写程序的核心,因为它很简单而且是 C++。我想在 cocos2d 中加入 UI、过渡、菜单等,因为它也很简单而且看起来不错。

我试过了

#define __OPENFRAMEWORKS__

在一个.h 文件中,并将另一个包装在

#ifndef __OPENFRAMEWORKS__
#endif

我想我可以用 cocos2d 添加的额外位“增强”openFrameworks 中的 .h,但随后 openFrameworks 无法构建,因为它不再有 EAGLview 的定义。

是否有使用两个这样的库的最佳实践,它们都利用相同的低级功能,在本例中为CoreAnimation?我可以编写自己的类来继承它们吗?有没有办法从我的项目中删除一个 .h 文件?

【问题讨论】:

    标签: objective-c ios cocos2d-iphone openframeworks eaglview


    【解决方案1】:

    尝试包含cocos2d.h 标头,其中EAGLview.h 包含在原始openFrameworks 代码中(即ofMain.h),反之亦然。

    【讨论】:

    • 在 OP 中指出,由于符号重复,项目中只有两个库会导致链接器错误。
    • 但是……是的!适当地重建库就可以了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-24
    • 2011-06-23
    • 2021-11-13
    • 1970-01-01
    • 2023-01-02
    • 2013-08-12
    • 2013-03-04
    相关资源
    最近更新 更多