0

そこで、私は別のコーディング プロジェクトに取り組み、RetroArch all in one Emulator を Native Client に移植することを試みることができる最善の方法であると考えました。ブラウザ。十分なリンクがないため、Github でプロジェクトを調べてください。

RetroArch を Linux で構築する方法は、configure スクリプトを実行してから make を実行し、次に sudo make install を実行することです。ネイティブ クライアント コンパイラを選択するように構成エージェントを変更すると、ビルドに数秒かかることがありました。

http://pastebin.com/0WtrY6aU

ここでこのカスタム Makefile を使用します。

http://pastebin.com/iv6RmQVr

この子犬の構築とデバッグは長く困難な道のりになると思いますが、どこから始めることをお勧めしますか?

4

1 に答える 1

2

あなたは良いところから始めています。最初のコンパイル エラーが発生しました。

ここにあります:

In file included from settings.c:23:
input/input_common.h:73: error: redefinition of typedef ‘rarch_joypad_driver_t’
driver.h:327: note: previous declaration of ‘rarch_joypad_driver_t’ was here

以下は、input_common.h からの抜粋です。

typedef struct rarch_joypad_driver
{
   ...
} rarch_joypad_driver_t;

以下は、driver.h からの抜粋です。

typedef struct rarch_joypad_driver rarch_joypad_driver_t;

エラーが示すように、typedef が再定義されています。Ubuntu 12.04 から gcc 4.6.3 を使用してテストを実行しました。

typedef struct foo { int bar; } foo_t;
typedef struct foo foo_t;
int main() { return 0; }

これにより、正常にコンパイルおよびリンクされます。x86_64-nacl-gcc (gcc 4.4.3 を使用) でコンパイルされた同じコードでは、次のエラーが発生します。

typedef.c:2: error: redefinition of typedef ‘foo_t’
typedef.c:1: note: previous declaration of ‘foo_t’ was here

このエラーは、最近のバージョンの gcc では緩和されているようです。私はいくつかの検索を行い、このstackoverflowリンクを見つけました: Why "Redefinition of typedef" error with GCC 4.3 but not GCC 4.6? .

x86_64-nacl-g++ はこのコードを変更せずにコンパイルすることに注意してください。次の 2 つのことを試してください。

  1. x86_64-nacl-gcc の代わりに x86_64-nacl-g++ を使用して CC でコンパイルする
  2. driver.h 内の定義を ifdef から除外し、そのファイル内の他の使用を に置き換えますstruct rarch_joypad_driver

#2の場合、次を使用できます。

#ifndef __native_client__
...
#endif

頑張ってください。修正すべきコンパイル エラーがさらに発生する可能性があります。:)

于 2013-10-03T05:40:45.450 に答える