Две библиотеки расширяют EAGLview, и я хочу использовать их обе.Как? - PullRequest
0 голосов
/ 22 августа 2011

openFrameworks и cocos2d оба имеют оболочку для EAGLview.h, и, конечно, вы не можете просто использовать оба.Просто добавление обеих библиотек (libcocos2d.a и libofxiPhone_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 , потому что это также просто и выглядит красиво.

Я пробовал

#define __OPENFRAMEWORKS__

в одном .h file, и оборачивая другой в

#ifndef __OPENFRAMEWORKS__
#endif

, полагая, что я могу "увеличить" .h в openFrameworks с помощью дополнительных битов, добавленных cocos2d, но тогда openFrameworks не будет собираться, потому что он больше не имелопределение для EAGLview.

Есть ли наилучшая практика для работы с двумя библиотеками, подобными этой, которые обе используют одну и ту же низкоуровневую функциональность, в данном случае CoreAnimation?Могу ли я написать свой собственный класс, который наследует от них обоих?Есть ли способ вырезать один из .h файлов из моего проекта?

1 Ответ

0 голосов
/ 23 августа 2011

Попробуйте включить заголовок cocos2d.h, где EAGLview.h включено в исходный код openFrameworks (т.е. ofMain.h), или наоборот.

...