Официальный форум СВД Встраиваемые Системы
04 Декабря, 2016, 09:04:10 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2   Вниз
  Печать  
Автор Тема: [Watcom 10.6] Cross-compile for QNX4 from Windows  (Прочитано 2958 раз)
osovitskiy
Пользователь

Сообщений: 12



« : 21 Октября, 2012, 15:24:22 »

Добрый день!

  Имеется QNX4 с компилятором Watcom 10.6 и имеется Watcom 10.6 под Windows. Я могу компилировать нативно под QNX4 и нативно под виндой.

Знаю, что можно прикрутить библиотеки от QNX4 и использовать виндовый компилятор как кросс-компилятор для QNX4. Кто-нибудь уже делал такое? Поделитесь настройками, параметрами командной строки.

Хочется разработывать для QNX4 используя все прелести нормальных IDE (Eclipse, SlickEdit) с подстановкой переменных, многоконностью и т.д., а то уж очень text mode Visual Edit Plus совсем из прошлого века.

Интересует не OW, а именно старый добрый 10.6.

Заранее спасибо.
Записан

С уважением,
Олег Осовицкий
Олег Большаков
Администратор
Житель форума

Сообщений: 2931



WWW
« Ответ #1 : 21 Октября, 2012, 19:17:21 »

Насколько я помню, принцип использования для кросс-омпиляции Watcom 10.6 в Windows тот же, что и для  Open Watcom. На форуме есть тема по Open Watcom.

Добиться Вашей цели, т.е. использовать «все прелести нормальных IDE», можно и другим способом. Редактируйте код в своём любимом редакторе или IDE под Windows, используйте знакомые системы хранения версий. Для сборки синхронизируйте код на Windows машине с QNX (можно виртуальной машиной), например, при помощи NFS, SMB, FTP, SSH или иначе. Собирать код можно прямо в QNX или посредством удалённых команд по SSH. Если Ваша IDE под Windows позволяет это делать, то описанный процесс можно полностью или частично автоматизировать.
Записан

osovitskiy
Пользователь

Сообщений: 12



« Ответ #2 : 21 Октября, 2012, 23:34:03 »

Олег, большое спасибо за ответ. Действительно я взял решение для OpenWatcom и все заработало. Правда пока собирал только "hello, world" на С и С++ - но на QNX4 все это работает. Осталось попробовать большой проект с сокетами. Пришлось переделать cc.bat чтобы по умолчанию генерился объектник с расширением ".o" вместо ".obj". А вот как сделать, чтобы результирующий исполняемый бинарь не имел расширения ".qnx" пока не нашел. У вас есть решение?

Ваш путь - редактировать на нормальной машине в современном графическом IDE (Linux/Windows+Eclipse/SlickEdit), затем копировать по smb/ftp/ssh на qnx, там компилять, смотреть ошибку, лезть в IDE, править и повторять заново - использую и сейчас - мне этот путь не нравится.  Разрабатывал софт в текстовом режиме в QNX, но текстовые IDE по функционалу далеко отстали от графических (я знаю и люблю vim, но на qnx4 нормально заставить его работать у меня не получилось - а вот на qnx6 все работает).

В общем пока вроде с простыми проектами все работает, буду пробовать что посложнее - может проблемы вылезут....
Записан

С уважением,
Олег Осовицкий
Олег Большаков
Администратор
Житель форума

Сообщений: 2931



WWW
« Ответ #3 : 22 Октября, 2012, 07:43:29 »

Я использовал Open Watcom в Linux, и, если мне не изменяет память, там расширение .qnx не добавляется. Могу посоветовать добавить дополнительное правило в Makefile, например:

Код:
cp $(PROG).qnx $(PROG)
Записан

osovitskiy
Пользователь

Сообщений: 12



« Ответ #4 : 22 Октября, 2012, 09:49:26 »

Олег, пытался собрать большой проект. Столкнулся с проблемами в том, что оригинальная утилита "cc" при передаче флага "-A" вызывает "wlib". Вот как это выглядит в родном qnx:



ваша программа такого параметра не знает и выдает ошибку.

пока сделал workaround - явно зову wlib, но в целом думаю разумно было бы реализовать эту фишку.

И еще вопрос - как добавить use message к бинарнику? Какие-то параметры командной строки? В родном qnx есть "usemsg" утилита

Заранее спасибо

Записан

С уважением,
Олег Осовицкий
Олег Большаков
Администратор
Житель форума

Сообщений: 2931



WWW
« Ответ #5 : 22 Октября, 2012, 10:22:34 »

Есть новая версия cc.bat, которая называется wacc. Опции -A и -a поддерживаются. Посмотрите вот эту тему. Не забудьте переименовать в wacc.bat и отредактировать заголовок скрипта (посмотрите, как это сделано в cc.bat).

Чтобы добавить usage к бинарникам QNX4 Вы можете воспользоваться утилитой usemsg из состава QNX 6 Windows Host.
Записан

osovitskiy
Пользователь

Сообщений: 12



« Ответ #6 : 22 Октября, 2012, 11:29:53 »

О, спасибо огромное. Самое интересное я же ее вчера ночью скачал, оформил скриптом, подправил под себя, чтобы не ".obj", а ".o" создавались, других различий не заметил и забыл про нее.
Да действительно работает "-A" но я смотрю вы добавили кавычки для дефайнов было '-dVAR' стало '-d"VAR"'
wpp386 из комплекта 10.6 это убивает, а вот wcc386 нормально такое переваривает. Убрал кавычки - все заработало. Спасибо.

Про usemsg - спасибо, как это я сам не догадался....
Записан

С уважением,
Олег Осовицкий
osovitskiy
Пользователь

Сообщений: 12



« Ответ #7 : 22 Октября, 2012, 14:49:12 »

В итоге все заработало так как планировал:
1. разработка в эклипсе
2. кросс-компилятор нормально собирает код для QNX4
3. usemsg корректро вставляет сообщение
4. wmake оказался убогим, заменил его на правильный GNU make из комплекта cygwin

пришлось немного переделать wacc, чтобы корректно обрабатывались пути с прямыми слешами, которые ему скармливал make
пришлось написать на перле свою утилиту rm, ибо из комплекта cygwin отказать с обратными слешами работать. А с прямымо не хочет watcom работать - головняк, но решаемый

Кстати раньше не знал, что перловку можно так лихо на винде в батники заворачивать. Оценил! Я больше привык к Linux, QNX, Unix и там этой проблемы просто нет, а тут приходится изобретать решения для проблем несуществующих в нормальных ОС

ну и плюс все скрипты на bash+awk что автоматически генерили номера сборок, релизов, дату компиляции и usage сообщения тоже пришлось переписать на перле. Теперь у меня на винде есть полноценная среда разработки, которая генерит точно такой же бинарь как нативный QNX компилер. Только наконец-то редактировать сырцы можно в куче графических окон.

Спасибо большое за предоставленный материал! Вы очень облегчили мне жизнь!
« Последнее редактирование: 22 Октября, 2012, 14:56:14 от osovitskiy » Записан

С уважением,
Олег Осовицкий
osovitskiy
Пользователь

Сообщений: 12



« Ответ #8 : 22 Октября, 2012, 17:05:34 »

Вот еще забыл одну деталь - а как-то можно настроить error parser от Eclipse чтобы он подсвечивал ошибки компиляции (Watcom/OpenWatcom) и по двойному щелчку на них переходил бы на соответсвующую строку в нужном файле?

Это сделано для gcc, но что-то мало внятной документации как сделать это для произвольного компилятора....
Записан

С уважением,
Олег Осовицкий
osovitskiy
Пользователь

Сообщений: 12



« Ответ #9 : 22 Октября, 2012, 23:21:11 »

Отвечаю на свой вопрос. С версии 6.1 CDT Error Parser можно создавать свои парсеры ошибок. Все задается прямо из эклипса перловыми регекспами.

Вот в качестве примера регекспы для ворнинга и ошибки, вдруг кому пригодится.

Создаем Error Parser:


Вот предупреждение в действии. Подкрашивается в консоли сборки и также кидается в окно "Problems". Даблкликом переходим прямо на нужную линию в исходнике.
Записан

С уважением,
Олег Осовицкий
osovitskiy
Пользователь

Сообщений: 12



« Ответ #10 : 22 Октября, 2012, 23:25:29 »

Тему думаю можно на этом закрыть - все вопросы, которые хотел выяснить я выяснил - кросс-компиляция работает на ура, IDE (Eclipse) работает, сборку/очистку запускает, ошибки/предупреждения красит и парсит - ляпота. Всем спасибо за помощь и участие, а особенно Олегу Большакову за советы, помощь, а также за предоставленный комплект скриптов и настроек для кросс-компиляции с помощью OpenWatcom. 

Засим удаляюсь....
Записан

С уважением,
Олег Осовицкий
Олег Большаков
Администратор
Житель форума

Сообщений: 2931



WWW
« Ответ #11 : 23 Октября, 2012, 11:10:55 »

Олег, спасибо, что поделились информацией по настройке Watcom для Eclipse Eclipse для Watcom. Думаю, что это будет полезно некоторым нашим заказчикам. К нам уже обращались с подобным вопросом.
« Последнее редактирование: 23 Октября, 2012, 12:31:52 от Олег Большаков » Записан

osovitskiy
Пользователь

Сообщений: 12



« Ответ #12 : 23 Октября, 2012, 11:16:07 »

Настройка Eclipse для Watcom =)
Для того и написал здесь, чтобы сформировать базу знаний ибо гуглил  на эту туматику и информации совсем не много. По кросс компиляции Watcom для QNX4 вообще почти ничего. Правда по привычке сначала на английском языке запросы строил, а оказалось что наиболее полное и правильное решение предлагает русская компания и гуглить надо было на русском языке =)

Сейчас в гугле по запросу "Watcom cross compile for QNX4" 8-я ссылка на эту ветку форума. Фдисятке!
« Последнее редактирование: 23 Октября, 2012, 11:19:36 от osovitskiy » Записан

С уважением,
Олег Осовицкий
Андрей Ивлев
Пользователь

Сообщений: 74



« Ответ #13 : 17 Января, 2013, 11:29:57 »

Как подключить объектники лежащие в другой директории? есть Makefile:
Код:
DIR1 = D:\work\Obj
...
CC = wacc.bat

all: aaa.exe

aaa.exe: aaa.obj $(DIR1)\a.obj
$(CC) -o aaa.exe aaa.obj $(DIR1)\a.obj

wlink выдает ошибку:
Код:
Error! E2008: cannot open D:/work/Proj\D:\work\Obj\a.obj : No such file or directory
« Последнее редактирование: 17 Января, 2013, 14:19:15 от Андрей Ивлев » Записан
osovitskiy
Пользователь

Сообщений: 12



« Ответ #14 : 17 Января, 2013, 13:47:56 »

1. Что делаем-то? виндовый бинарь или qnx?
2. Слеш другой попробуй
3. Makefile синтаксис знаете? Почему таргет один, а выход компиляции по -o другой?  Huh?
Записан

С уважением,
Олег Осовицкий
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2016 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС

В последний раз google посещал эту страницу 30 Ноября, 2016, 15:13:56