Open Watcom для QNX4 Open Watcom (далее
OW) это проект с открытым исходным кодом. Допускается как коммерческое, так и некоммерческое использование исходных текстов дистрибутива, в соответствии с лицензией
Sybase/Open Watcom.
В 1999г.
Sybase анонсировала решение о закрытии коммерческой линейки
Watcom . А в 2000г. заявила об открытии исходных текстов компилятора. В том же году код
Watcom был передан фирме
SciTech. Началась работа над проектом
Open Watcom и уже в 2003 г. вышел релиз
Open Watcom 1.0. Далее следовали несколько лет активной переработки
Watcom в проект с открытым и свободно распространяемым исходным кодом. После
OW 1.6 (2006г.)
SciTech прекратила прямую координацию проекта и сейчас занимается лишь вопросами его финансирования. Более подробную историю этого компилятора можно почитать на
http://openwatcom.com/index.php/History.
Проект содержит компиляторы
С/С++, линкеры и отладчики, работающие под
host-платформами
MS Windows, Linux (доступна экспериментальная версия),
FreeBSD (на этапе разработки), и
OS/2. Эти инструменты позволяют генерировать, линковать и отлаживать код для нескольких
target-платформ, в том числе и для
QNX4 (16, 32 бит). Здесь важно отметить, что в дистрибутиве исходных текстов
OW по умолчанию отключена поддержка
QNX4 Target. Сделано это по причине отсутствия в дистрибутиве библиотек и заголовочных файлов
QNX4. Распространять их вместе с дистрибутивом не позволяет коммерческая лицензия
QSS.
Таким образом, если собрать
OW c полноценной поддержкой
QNX4, можно написать, скомпилировать и собрать код на своей рабочей (инструментальной) машине под
Windows или
Linux , т.е.
OW поддерживает кросс-компиляцию, аналогично современным инструментальным средствам
QNX Momentics. При этом, можно использовать как собственные средства редактирования и скрипты запуска компиляции и сборки, так и возможности
Watcom IDE. На текущем этапе (версия 1.7a) доступна графическая
IDE под
Windows, под
Linux идет создание подобной
IDE на
GTK.
Рис. 1. Open Watcom IDE
Средства отладки
OW так же могут быть использованы для
QNX4. Процесс происходит удаленно. Для этого инструментальную машину соединяют с целевой кабелем по одному из поддерживаемых интерфейсов (
Ethernet (
TCP/IP), последовательный порт, параллельный порт). На целевой машине запускается сервер отладки (для каждого интерфейса свой сервер). На инструментальной машине запускается отладчик. Отладчик может быть как консольным (
wd), так и графическим (
wdw – в текущей версии, только для
Windows). Они отличаются только пользовательским интерфейсом, интерфейс их взаимодействия с целевой машиной предоставляет одинаковые возможности.
Рис.2. Консольный отладчик (wd)
Рис.3. Графический отладчик (wdw)
Исполняемый файл
QNX4 может быть либо загружен на целевую машину через опцию отладчика, либо быть доступен серверу отладки на целевой машине (например, через подмонтированный по сети каталог
host-машины). Если приложение собрано в отладочном (
debug) варианте, то отладчик при запуске перейдет на функцию
main.
Сегодняшние возможности Open Watcom Поскольку проект находится в постоянном развитии, добавляется много новых возможностей. Однако, наиважнейшим остается тот факт, что в этом проекте присутствуют те возможности компилятора, которые были представлены еще в версии 10.6. То есть можно говорить о сохранении технических характеристик
Watcom 10.6 при переносе разработки с
QNX4 на
Windows или
Linux с использованием
OW. Это особенно важно для модернизации и продления жизненного цикла уже имеющихся
QNX4 проектов.
Для переноса современных opensource приложений под
QNX4 возможностей
Watcom 10.6 уже становится не достаточно и здесь
OW по сути выступает альтернативным решением.
В основном, новые возможности
OW касаются обновления синтаксиса языков
C и особенно
С++. Так, одним из важных достоинств, является наличие 64-битного типа данных (добавленного еще в
Watcom 11.0). Добавлена поддержка нескольких конструкций «современного»
С++, таких например, как
dynamic/static cast. В данный момент идет работа по реализации базовых возможностей библиотеки
STL.
Количество нововведений и дополнений огромно, краткий перечень возможностей представлен на
http://openwatcom.com/index.php/Detailed_Contents. Что естественно,
QNX там не упомянут, по вышеописанным причинам.
Все выше перечисленные возможности
OW полностью подходят для написания и сборки приложений консольного характера (драйвера, менеджеры, утилиты и т.п.) или для портирования приложений.
Автор статьи: Михаил Колесов