Box2D、Cocos2d-iPhone、iPhone ワックスを統合する必要があるこのプロジェクトがあります。最初に cocos2d-iphone と box2d を一緒にすると、次のエラー メッセージが表示されます。
fatal error: 'cassert' file not found
#include <cassert>
^
そして、検索したところ、box2d は c++ で記述されており、box2d を参照するすべてのソース ファイルを *.mm に設定する必要があるため、Apple コンパイラが object-c++ としてコンパイルできることがわかりました。
したがって、すべてのソースファイルを *.mm に変更しただけで機能しました。
そして、iPhoneワックスを入れてみました。iPhone Wax は object-c と c で書かれています。そして、wax.framework を提供します。そのため、それをダウンロードして、プロジェクトのフレームワーク ゾーンにドラッグします。そして、それは私にこのエラーを与えます:
"__Z9wax_startPcPFiP9lua_StateEz", referenced from:
_main in main_old.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
もう一度検索すると、予想されるライブラリが存在しないことが原因であることがわかりました。そして、リストごとにチェックしますが、すべての設定が正しいと確信しており、問題を見つけることができませんでした.
だから私はいくつかのテストをしました。これらのテンプレートの 1 つから新しいサンプル プロジェクトを作成し、そこに iPhone ワックスを入れると、問題なく動作します。そして、main.m ファイルを main.mm に変更すると、上記のようなエラーが発生します。
では、どうすればこれを修正できますか?これは、object-C++ が object-c および c フレームワークをインポートできないためですか? フレームワークを再作成して、すべての名前を *.mm に変更する必要がありますか? または、ソース ファイルを *.mm に変更したときに間違ったことをしたので、それを解決するためのより良い方法があるはずですか?