2013-10-02 6 views
0

Итак, я резал свои зубы на другом проекте кодирования, и решил, что лучшее, что я мог бы попробовать, - это перенести RetroArch в один эмулятор на собственный клиент, чтобы он мог очень хорошо быть упакованным приложением, облако сохраняет полностью в браузере. Посмотрите проект на Github, так как у меня недостаточно ссылок.Могу ли я перенести RetroArch на собственный клиент

Путь RetroArch построен на linux для запуска скрипта configure, затем make, затем sudo make install. Изменение конфигурационного агента для выбора Native компиляторов клиента, я был в состоянии получить пару секунд в строй, когда это произошло,

http://pastebin.com/0WtrY6aU

используя этот обычай Makefile здесь.

http://pastebin.com/iv6RmQVr

Я полагаю, что это будет долгая и тяжелая дорога здание и отладка этого щенка, но где вы посоветуете начать?

ответ

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 переопределяется. Я провел тест, используя gcc 4.6.3 от Ubuntu 12.04:

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 ++ скомпилирует этот код без изменений. Вот две вещи, чтобы попробовать:

  1. компилировать с CC с использованием x86_64-NaCl-г ++ вместо x86_64-NaCl-НКУ
  2. IfDef из определения в driver.h, и заменить другое использование в этом файле с struct rarch_joypad_driver.

Для # 2, вы можете использовать следующее:

#ifndef __native_client__ 
... 
#endif 

Успехов, там, вероятно, будет более компилировать неудачи, чтобы исправить. :)

+0

спасибо. Я полагаю, что это не обычная процедура для PM или продолжение потока с каждой ошибкой компиляции, которую я получаю, поэтому я должен попытаться понять эту статью самостоятельно или обратиться за помощью каждый раз, когда я ударяю стену? – moocow1452

+0

Я рад помочь, хотя, возможно, это не самое лучшее место. Возможно, попробуйте #nacl на irc.freenode.net или обсуждать группу Google на родном клиенте? – binji

Смежные вопросы