Официальный форум СВД Встраиваемые Системы
19 Апрель, 2024, 02:00:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

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

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

С уважением,
Олег Осовицкий
Олег Большаков
Легенда

Сообщений: 3140



« Ответ #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 все работает).

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

С уважением,
Олег Осовицкий
Олег Большаков
Легенда

Сообщений: 3140



« Ответ #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" утилита

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

Записан

С уважением,
Олег Осовицкий
Олег Большаков
Легенда

Сообщений: 3140



« Ответ #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. 

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

С уважением,
Олег Осовицкий
Олег Большаков
Легенда

Сообщений: 3140



« Ответ #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 » Записан

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

Сообщений: 138



« Ответ #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-2024 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

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

В последний раз google посещал эту страницу 03 Март, 2024, 20:12:50