現在、Cocos2dx で提供されている BBTemplateProject サンプルを使用して、BB10 プラットフォーム用の Cocos2d-x ゲームの構築に取り組んでいます。私は C++ プログラミングが初めてで、現在のゲームは、Iv がしばらく取り組んできた Java プロジェクトのポートです。ゲームデータ(スコア、一部の設定など)を保存するために、BB10 が提供する QtSQl ライブラリを使用する予定です。サンプル Cascades アプリケーションでいくつかのサンプル Qtsql コードを正常に実行しましたが、正常に動作します。ただし、同じコードを Cocos2dx BB10 プロジェクトに統合してもうまくいきません。Momentics IDE を使用し、qt4、QtCore、QtDeclarative、パス/シンボルをプロジェクトに追加しましたが、次のエラーが表示されます
undefined reference to `QObject::QObject(QObject*)'
undefined reference to `vtable
undefined reference to `QSqlDatabase::defaultConnection'
.. and a bunch of other Q- related object errors.
ここでQobjectを読んだ後http://developer.blackberry.com/cascades/reference/moc.html 私は、MOCコンパイラが参照または同様の問題を流用していないと思われます。また、同じコードが Momentics IDE の自動生成されたカスケード プロジェクトに統合されたときにうまく機能することを考えると、これは何らかの moc コンパイラの問題であると考えるようになりました。私は C++ 開発にまったく慣れていないため、 Qobjects を認識するために適切な qmake ファイル ルールを Momentics IDE に追加する方法をまだ理解できていません。この分野では助けが必要です。
経験豊富な C++ 開発者からこれを行う方法や、cocos2dx blackberry 10 プロジェクト内にデータを保存するためのより良い方法についてのアドバイスをいただければ幸いです。
前もって感謝します。
編集 :
これが、データベースとの対話に QtSql を使用しようとするこれまでの私の進歩です。QtSQl には、上記の QObject を含む QtCore が必要です。これまでのところ、QtCore ライブラリをうまく統合できませんでした。
私は次のことをしました。
次の手順を使用して、/usr/include/qt4 と /usr/include/QtCore と /usr/include/QtSql をインクルード リストに追加しました
プロジェクト エクスプローラーでプロジェクトを右クリックし、[プロパティ] を選択します。
- ツリーを C/C++ General / Paths and Symbols に展開します
- パスとシンボル フレームの構成を [すべての構成] に変更します。
- [Includes] タグをクリックし、[言語] リストで [GNU C] を選択します (または、すべての言語に対してこれを行います)。
- [追加...] をクリックし、${QNX_TARGET}/usr/include/qt4 と入力して [OK] を押します。
[追加...] をクリックして ${QNX_TARGET}/usr/include/qt4/QtCore と入力し、[OK] を押します。
Momentics IDE の追加ライブラリ関数を使用して、QtCore と QtSql の両方をプロジェクトに追加しました。右クリック -> 構成 -> ライブラリと標準の BlackBerry Platform ライブラリを追加します。ライブラリが正常に追加されます。
私は基本的に、この関連記事Adding QtCore Library in blackberry 10 sdk に詳述されている手順に従いました。しかし、今このエラーが発生します。
\win32\x86\usr\bin\ntoarm-ld: cannot find -lQtCore
その投稿のOPは、「いくつかのリンカーの問題」を解決することについて言及していますが、その方法については言及していません。また、次の行を追加して bar-descriptor.xml ファイルを変更しようとしました
<env var="LD_LIBRARY_PATH" value="app/native/lib:/usr/lib/qt4/lib"/>
<asset path="${QNX_TARGET}\${CPUVARDIR}usr\lib\qt4\lib\libQtCore.so" type="Qnx/Elf">lib/libQtCore.so.4</asset>
エラーはまだ残っています。この「リンカー」またはライブラリが見つからないエラーを解決するにはどうすればよいですか? どうもありがとう。