В зависимости от версии SDK, которую вы хотите использовать, у вас есть несколько вариантов.
Pepper 16 и 17: используйте init_project.py или используйте пример в качестве отправной точки
Если вы используете pepper_16
или pepper_17
, вы найдете скрипт Python init_project.py
в project_templates
в SDK. Он настроит полный набор файлов (.cc, .html, .nmf) с комментариями, указывающими, куда вам нужно добавить код. Запустите python init_project.py -h
, чтобы увидеть, какие опции он принимает. Дополнительную документацию можно найти по адресу https://developers.google.com/native-client/pepper17/devguide/tutorial.
Pepper 18 и новее: используйте пример в качестве отправной точки
Если вы используете pepper_18
или новее, init_project.py
больше не включается. Вместо этого вы можете скопировать очень маленький пример из каталога examples
(например, hello_world_glibc
или hello_world_newlib
для C или hello_world_interactive
для C ++) и использовать его в качестве отправной точки.
Пишем полностью с нуля
Если вы хотите написать свое приложение полностью с нуля, сначала убедитесь, что SDK работает, скомпилировав и выполнив несколько примеров. Затем хорошим следующим шагом будет рассмотрение классов pp :: Module и pp: Instance , которые ваше приложение должно будет реализовать.
Со стороны HTML напишите простую страницу с элементом EMBED
для модуля Native Client. Затем добавьте обработчики событий JavaScript для loadstart
, progress
, error
, abort
, load
, loadend
и message
и попросите обработчики записать данные события, например, в консоль JavaScript , так что можно сказать, что пошло не так, если модуль Native Client не загрузился. Пример load_progress
показывает, как это сделать.
Затем создайте файл манифеста (.nmf
). Начиная с pepper_18
и далее, вы можете использовать для этого скрипт generate_nmf.py
, находящийся в каталоге tools/
. Если вы хотите написать его с нуля, в примерах приведены примеры использования newlib
и glibc
(в настоящее время поддерживаются две библиотеки Standard C). См. hello_world_newlib/
и hello_world_glibc/
соответственно.
Если вы ранее не использовали компилятор семейства gcc, также неплохо было бы взглянуть на Makefile, чтобы увидеть, какие флаги компилятора и компоновщика использовать. Рекомендуется компиляция как для 32-битной, так и для 64-битной версии с самого начала.