Главная » Просмотр файлов » Руководство программиста в Photon

Руководство программиста в Photon (953920), страница 26

Файл №953920 Руководство программиста в Photon (Руководство программиста в Photon) 26 страницаРуководство программиста в Photon (953920) страница 262013-09-22СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 26)

Рис. 8-2. Селектор платформы

  1. После того как Вы выбрали платформу, дождитесь, чтобы счётчик прогресса достиг 100%.

  2. Щёлкните на "Done" в диалоге прогресса.

Если Вы сгенерировали код в диалоге "Build+Run", список файлов обновляется, показывая все сгенерированные файлы с программным кодом.

Что генерирует PhAB

PhAB генерирует различные файлы и сохраняет их в директории приложения src.

Любое имя файла, начинающееся с префикса "ab", является файлом PhAB и не должно никогда модифицироваться. Если Вы попытаетесь отредактировать ab-файл, Вы можете потерять результаты работы (когда PhAB перепишет файл) или получить некорректное поведение (когда файлы выйдут из синхронизма).

Вы можете модифицировать любые другие файлы, генерируемые PhAB, при некоторых условиях. Эти условия описаны в следующих разделах.

Вот файлы, генерируемые PhAB:

Makefile

Используется для компилирования и линковки приложения

Usemsg

Сообщение пользователя для приложения

abHfiles

abOfiles

abSfiles

Внешние ссылки PhAB в Makefile

abdefine.h

Содержит все сгенерированные PhAB'ом декларации. PhAB включает этот хеадер во все файлы С

abevents.h

Содержит все ответные реакции приложения.

abimport.h

Хеадер внешней ссылки, включаемый во все файлы С. См. раздел "Прототипы функций" ниже

ablinks.h

Содержит все определения модулей приложения

abmain.c

Главный С-файл приложения. Этот файл начинается с "ab", так что не модифицируйте его

abmain.cc

Если PhAB определяет какие-либо функции С++ в Вашем приложении, он генерирует abmain.cc вместо abmain.c. Этот файл также начинается с "ab", так что не модифицируйте его

abplatform

Содержит список директорий платформ для приложения

abvars.h

Содержит все сгенерированные PhAB'ом глобальные переменные

abwidgets.h

Содержит все списки данных PhAB

proto.h

Содержит прототипы приложения – см. раздел "Прототипы функций" ниже. Не переименовывайте этот файл

Управление версиями

Вот файлы, которые Вам надо сохранять, если Вы используете ПО управления версиями (PhAB может генерировать некоторые из них, но хранить их все – не очень хорошая идея):

abapp.dfn

Ответные реакции и другая информация – это бинарный файл.

wgt/*

Ресурсы виджетов – они могут выглядеть похожими на текстовые файлы, но это бинарники.

src/*.(c,cc,cpp,C,h)

Файлы с исходным кодом и хеадеры.

src/*files

Файлы, относящиеся к не-PhAB исходным фвйлам. Убедитесь, что сохраняете также не-PhAB исходники.

src/Makefile,

src/*/Makefile

Все make-файлы.

application_name.ldb

Языковая база данных Вашего приложения. Сохраните также какие-либо файлы перевода.

Вам понадобится содержать сопоставляемый набор всех файлов, генерируемых PhAB; сохраните ту же самую версию файлов abapp.dfn, src/ab* и wgt/*.wgt?

Некоторые рекомендации по использованию CVS

Сохранять приложение в PhAB легче, чем в RCS (RCS – Revision Control System; CVS – вероятно, Control Version System – система управления версиями. Прим. пер.).

Вот несколько вещей, которые надо помнить:

  • Пометьте файлы *.wgt? и abapp.dfn как бинарные (-kb).

  • Поскольку бинарные файлы не могут быть объединены, попытайтесь исключить возможность модификации бинарных файлов несколькими людьми одновременно. CVS не поддерживает запирания; самое точное, что Вы можете получить, это установить "watch" (наблюдение) в abapp.dfn (cvs отслеживет abapp.dfn).

При таком подходе, если Вы заканчиваете работу над приложением, Ваша копия файла abapp.dfn имеет атрибут "только для чтения" и PhAB не позволит Вам загрузить приложение. Если Вы хотите модифицировать приложение, Вы запускаете редактирование файла abapp.dfn с помощью CVS, которая делает файл доступным для чтения. Хотя это и не препятствует другому народу выполнить эти же действия, по крайней мере добавляет Вас в список "редакторов" сервера CVS, который другие пользователи могут опрашивать.

Прототипы функций

PhAB генерирует прототипы функций, используемые для компиляции, чтобы проверить, правильно ли вызываются Ваши функции. Эти прототипы располагаются в abimport.h и, возможно, в proto.h. Вот сравнение этих файлов:

proto.h

abimport.h

Генерируется при синтаксическом разборе Вашего кода

Генерируется при просмотре установок Вашего приложения

Генерируются прототипы для всех функций

Генерируются только прототипы, известные в PhAB (ответные реакции, установочные функции, ресурсы указателей на функции)

Вы можете иметь проблемы с препроцессорными директивами (см. раздел "Потенциальные проблемы при генерировании файла proto.h), несвойственными языку С конструкциями, синтаксическими ошибками и кодом С++

Прототипы не зависят от исходного кода

Не работает с С++

Содержит предопределённые #ifdefs и расширенные "С" декларации, требуемые для С++.

Прототипы совпадают с тем, как выглядят функции

Прототипы совпадают с тем, как предположительно выглядят функции – если исходный код различается, компилятор сможет это определить.

Чтобы подавить генерирование прототипов в proto.h:

  1. Нажмите <F2> или выберите в меню "Application" пункт "Startup Info/Modules", чтобы открыть диалог "Application Startup Information".

  2. Щёлкните на кнопке "Generate empty "proto.h" file".

Потенциальные проблемы с генерированием proto.h

Для повышения скорости программа, сканирующая Ваши файлы с исходным кодом на предмет прототипов функций, игнорирует препроцессорные директивы. Это может привести к определённым проблемам в файле proto.h.

Например, пусть мы имеем следующий код:

#ifdef DOUBLE

for (i=0; i<18; i++, i++) {

#else

for (i=0; i<18; i++) {

#endif

x += 2*(i+x);

y += x

}

Поскольку процессорные директивы игнорируются, генератор прототипа видит следующее:

for (i=0; i<18; i++, i++) {

for (i=0; i<18; i++) {

x += 2*(i+x);

y += x

}

Две открытые фигурные скобки вызовут определённое замешательстро, и будет сгенерирован неверный прототип. Проверяйте подобные вещи, если генератор прототипов создаёт неверные прототипы.

Чтобы исправить код, приведённый выше, мы должны удалить открывающие скобки и разместить их в строке после #endif. Или же мы можем сделать таким образом:

#ifdef DOUBLE

#define ADDAMOUNT 2

#else

#define ADDAMOUNT 1

#endif

for (i=0; i<18; i += ADDAMOUNT) {

x += 2*(i+x);

y += x;

}

Как организовать файлы приложения

PhAB хранит каждое приложение как структуру директорий. Эта структура состоит из главной директории, хранящей файл описания приложения, двух поддиректорий, содержащих файлы модулей и исходный программный код приложения и, потенциально, директории для различных платформ разработки:

Рис. 8-3. Директории для приложения PhAB

 Если Вы первый раз сгенерировали Ваше приложение с ранней версией Photon'а, оно могло быть создано как одноплатформенное приложение. В этом случае размещение файлов слегка различается, как описано в последующем разделе.

Вы можете выбрать платформы, для которых компилируется Ваше приложение. Если Вам не требуется чего-то иного, Вы можете выбрать в качестве платформы принимаемое по умолчанию (выбрать "default"). Если Вы выбрали default, при инсталляции новых версий компилятора они будут использоваться автоматически.

Многоплатформенные приложения

Вот что содержит каждая директория многоплатформенного приложения:

appl

Имя этой платформы – то же, что имя Вашего приложения. Она содержит файл описания приложения abapp.dfn. Поскольку этот файл является принадлежностью PhAB, Вам не следует пытаться его модифицировать.

appl/src

Директория src содержит исходный программный код, хеадеры и файл Makefile, сгенерированные PhAB, а также любой код, созданный Вами собственноручно. Диалог "Build+Run" при раскрытии отображает содержание этой директории. Для получения более подробной информации о файлах, содержащихся в этой директории, см. раздел "Что генерирует PhAB" в этой главе.

appl/src/platforms

Эти директории содержат файл Makefile, объектные файлы и исполняемые файлы для выбранной платформы. Файл Makefile в директории src запускает их в платформенных директориях.

apply/wgt

Директория wgt содержит модули Вашего приложения. Поскольку каждый тип модуля имеет своё отличающееся расширение файла, довольно легко опознать соответствующий нужный Вам модуль при импортировании модулей из другого приложения. Для получения более полной информации см. подручные таблицы в разделе "Типы модулей" главы "Работа с модулями".

Всегда используйте PhAB, чтобы отредактировать файлы модулей в директории wgt. Не пытайтесь редактировать эти бинарные файлы другим редактором.

Никогда не модифицируйте какие-либо файлы, начинающиеся с "ab".

Одноплатформенные приложения

Вот что содержит каждая директория одноплатформенного приложения:

appl

Имя этой директории – то же, что имя Вашего приложения. Она содержит файл описания приложения abdefn.app. Поскольку этот файл является собственностью PhAB, Вам не следует пытаться его модифицировать. После того как Вы откомпилировали и слинковали приложение, в этой директории также размещается исполняемый файл.

appl/src

Директория src содержит файлы с исходным кодом хеадера, объектные файлы и файл Makefile, сгенерированные PhAB, а также любые файлы с исходным кодом, созданные Вами собственноручно. При открытии диалог "Build+Run" отображает содержание этой директории.

Для получения более полной информации о файлах, хранящихся в этой директории, см. раздел "Что генерирует PhAB" в этой главе.

appl/wgt

Директория wgt содержит модули ВАшего приложения. Поскольку каждый тип модуля имеет своё отличающееся расширение файла, довольно легко опознать соответствующий нужный Вам модуль при импортировании модулей из другого приложения.

Для получения более полной информации см. подручные таблицы в разделе "Типы модулей" в главе "Работа с модулями".

Всегда используйте PhAB, чтобы редактировать файлы модулей в директории wgt. Не пытайтесь редактировать эти бинарные файлы другим редактором. Никогда не модифицируйте какие-либо файлы, начинающиеся с "ab".

Преобразование к мультиплатформенности

Если у Вас имеется одноплатформенное приложение, построенное в одной из ранних версий Photon'а, Вы можете преобразовать его под мультиплатформенность, но это необязательно. PhAB работает с обоими типами приложения.

Чтобы преобразовать к мультиплатформенности, выберите пункт "Convert to Multiplatform" из меню "Application". PhAB переместит все существующие файлы Makefile в src/default/Makefile.old. Используйте пункт "Generate" в меню "Application", или команду "Generate" в диалоге "Build+Run", чтобы сгенерировать новый файл Makefile для нужных платформ, и затем отредактируйте их, чтобы передать какие-либо требующиеся изменения из старого файла Makefile в новый.

Редактирование исходного кода

Как только Вы сгенерировали программный код Вашего приложения, Вы увидите модули с исходным программным кодом С и/или С++, отображаемые в списке файлов диалога "Build+Run". Рядом со списком файлов Вы увидите несколько кнопок , позволяющих выполнить над файлами различные действия. Чтобы редактировать, просматривать или удалять исходный код:

  1. Щёлкните на файле с исходным кодом

  2. Щёлкните на соответствующей кнопке действия ("Edit" – редактирование, "View" – просмотр, "Delete" – удаление, ...).

Вы можете также начать редактирование файла, дважды щёлкнув на его имени.

Выбор редактора или броузера

Чтобы выбрать, какой редактор или броузер вызывать по кнопкам "Edit" или "View", см. раздел "Подгонка Вашего окружения PhAB" в главе "Окружение PhAB".

Создание модуля с исходным кодом

Чтобы создать новый модуль с исходным кодом:

  1. Щёлкните на кнопке "Create", чтобы открыть диалог "Create File", затем наберите имя нового файла.

  2. Если Вы хотите создавать файл, используя шаблон (для хеадер-файла или ответной реакции виджета), выберите формат из комбинированного элемента управления "Template".

  3. Щёлкните на "Create". Вы увидите окно терминала, отображающего либо пустой файл, либо файл, содержащий шаблон.

Если Вы создали какие-либо файлы, щёлкните на кнопке "Refresh" для просмотра директории приложения и обновления списка файлов в левой части диалога "Build+Run".

Изменение отображения файлов

Для управления тем, какие файлы отображаются диалогом "Build+Run", используйте следующее:

  • "Refresh" – Вынуждает пересмотреть диркторию исходных кодов приложения для обеспечения правильности Вашего списка файлов.

  • File Spec – позволяет Вам задать шаблон имён отображаемых файлов.

Компилирование и линковка

После генерации кода приложения Вам необходимо:

  1. Выбрать библиотеки, используемые Вашим приложением

  2. Использовать команду make для компиляции и линковки Вашего приложения.

Выбор библиотек

PhAB позволяет Вам использовать с Вашим приложением следующие библиотеки:

  • Статические библиотеки – компоновка библиотек PhAB и Photon в исполняемый файл приложения. Приложение получается больше по размеру, нежели при использовании совместно используемой библиотеки, но выполняется без библиотек совместного использования. Это может быть полезным во встраиваемых приложениях.

  • Совместно используемые библиотеки – библиотеки не включаются в приложение. Приложение получается намного меньшим по размеру, но для своего выполнения требует совместно используемые библиотеки Photon'а.

По умолчанию установлено использование совместно используемых библиотек. При запуске PhAB Вы также можете задать список библиотечных функций ответных реакций.

Характеристики

Тип файла
Документ
Размер
7,62 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее