Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программное обеспечение под *NIX системы > HP aC++/HP ANSI C cross-compile Debian


Автор: CompWorm 17.4.2014, 20:31
Доброго времени,

проблема:
пишу HP aC++/HP ANSI C код для HP-UX B.11.31 U ai64, сам сижу на Debian Wheezy amd64. приходится каждый раз копировать исходники на HP-UX билд сервер для проверки на собираемость, ибо нативного HPaC++ компилятора я не нашёл в репе дебиана  ;D

вопрос:
Можно ли как-то сделать кросс-компиляцию из-под дебиана или собрать HPaC++ compiller из исходников на Debian?
ну и вообще советы/идеи по решению проблемы приветствуются.
идеи типа писать код по удалёнке на самом HP-UX - не приверствуется.

Автор: Zerstroer 23.4.2014, 07:55
Виртуальную машину на собственном PC с HP-UX развернуть можно?
Поддерживает ли IDE, которой вы пользуетесь (если пользуетесь) такую штуку, как "сервера удаленной сборки"? Я не знаю, как большинство и вы лично относитесь к NetBeans IDE, но там есть поддержка "серверов удаленной сборки". Прилагаю документацию: https://netbeans.org/kb/docs/cnd/remotedev-tutorial_ru.html, https://netbeans.org/kb/docs/cnd/remote-modes_ru.html.
Надеюсь, окажется полезным.

Автор: tzirechnoy 23.4.2014, 10:59
Идея первая -- перейти на gcc. Он-то точно соберётся на debian, дажэ с эклектичными тарджэтами вроде hpux/ia64.

Ну, а вторая -- а что такого в сборке на удалённом хосте? rsync, ssh в зубы -- и всё почти как локальное.

Автор: CompWorm 23.4.2014, 19:30
Прежде всего спасибо за попытку помочь!  smile 

Цитата(tzirechnoy @  23.4.2014,  10:59 Найти цитируемый пост)
Идея первая -- перейти на gcc. Он-то точно соберётся на debian, дажэ с эклектичными тарджэтами вроде hpux/ia64.

незя. проекту более двадцати лет и двигать этот хрустальный череп никто не станет и не разрешит. код пренадлежит клиенту и билд сервер стоит у него же.

Цитата(Zerstroer @  23.4.2014,  07:55 Найти цитируемый пост)
Я не знаю, как большинство и вы лично относитесь к NetBeans IDE, но там есть поддержка "серверов удаленной сборки".

Цитата(tzirechnoy @  23.4.2014,  10:59 Найти цитируемый пост)
Ну, а вторая -- а что такого в сборке на удалённом хосте? rsync, ssh в зубы -- и всё почти как локальное. 

это примерно то, как я уже сделал - я написал скрипт, который делает svn export, zip'ует папку, отправляет по FTP, а на сервере я написал скрипт, который подхватывает исходники, билдит и возвращает лог.
процесс инициируется прямо из Eclipse плагином EasyShell.

всё прекрасно билдится, но, как я сказал, билдсервер у клиента и не всегда доступен, второе - выгрузка исходников по VPN работает не шустро и в пределах возможностей моего скрипта.
так что 
Цитата(CompWorm @  17.4.2014,  20:31 Найти цитируемый пост)
идеи типа писать код по удалёнке на самом HP-UX - не приверствуется. 


Цитата(Zerstroer @  23.4.2014,  07:55 Найти цитируемый пост)
"серверов удаленной сборки"

Цитата

Наборы средств
Как правило, IDE самостоятельно обнаруживает поддерживаемый набор средств на удаленном узле: GNU Compiler Collection, Sun Studio или Oracle Solaris Studio.

Я попробую, но...
на самом деле во-первых, мне нужен не gcc, а aC++. кроме того на HP-UX как минимум не поддерживает удалённую отладку GDB - gdbserver там отсутствует в пакетной базе и не собирается из исходников. Кроме того официально NetBeans не поддерживает эту ось... посмотрим с какими трудностями я столкнусь на этом пути.

Добавлено @ 20:06
Цитата(Zerstroer @  23.4.2014,  07:55 Найти цитируемый пост)
Виртуальную машину на собственном PC с HP-UX развернуть можно?

ставлю плюс http://h30499.www3.hp.com/t5/Patches/HP-UX-OS-Download/td-p/4765144  smile 

ешё идеи?

Автор: CompWorm 23.4.2014, 20:59
есть альтернативный нативный вариант:
https://h20392.www2.hp.com/portal/swdepot/displayProductInfo.do?productNumber=EclipseCPlugin 
щас опробую 

Автор: tzirechnoy 24.4.2014, 02:30
Цитата
незя. проекту более двадцати лет и двигать этот хрустальный череп никто не станет и не разрешит.


Я бы сказал, что именно поэтому и нужно. То есть, конечно, ужэ очень поздно (надо бы лет на 10 раньшэ, когда ситуацыя с HP-UX и прочими AIX стала очевидной), но лучшэ поздно, чем никогда.

Цитата
 который делает svn export, zip'ует папку,


Могу посоветовать поставить туда git и копировать изменения через git-svn. Будет быстрее, я подозреваю.

Цитата
 отладку GDB - gdbserver там отсутствует в пакетной базе и не собирается из исходников.


По идее, все эти ведущие IDE вполне должны ещё поддержывать dbx.
Впрочем, точно не знаю, меня по большому счёту не интересуют ни графические IDE ни интэрактивные отладчики.

Цитата
ставлю плюс за юмор  


А в чём юмор-то? Уж вам-то как раз есть где спереть образ HP-UX.
Правда, единственный вариант без итаника (который, впрочем, сейчас можно достать и недорого) -- это, наверное, запустить в kvm HP-UX/ia32, и запустить в нём вашу программу черезе ski. Но юмора всё равно не видно.

Автор: CompWorm 24.4.2014, 21:47
короче, админ упёрся что этот нативный вариант с плагином Eclise работает с кучей удалённых сервисов и открывает потенциальную дыру в безопасности, но вцелом, похоже что рабочий вариант. буду пропихивать через манагеров.
самый косяк, что плагин не позволяет создать проект без реального подключения... то есть даже автодополнение кода незя задействовавть, а с gcc toolchain весь код покрыт красными ошибками неразрезолвеных инклудов...

NetBeans на очереди. надеюсь ему нужно меньше.  smile 

Автор: Zerstroer 25.4.2014, 09:54
Цитата(CompWorm @  24.4.2014,  19:47 Найти цитируемый пост)
NetBeans на очереди. надеюсь ему нужно меньше.    

Почему-то когда я говорю, что проект в NetBeans, все делают круглые глаза... Не забудьте поделиться своим первым впечатлением.

Автор: CompWorm 25.4.2014, 19:31
Zerstroer, Ну тут вопрос уже не про религию, а про необходимость... так что уже абсолютно неважно, что мне там нравится или не нравится)) работать надо.
так что обязательно отпишусь, если сам разберусь.

а пока...

небольшой мануал по Eclipse для HP-UX aC/aC++

... о том как настроить эклипс без HP-UX DEE (HP-UX Development Environment for Eclipse ) таким образом, чтобы исчезли ложные маркеры ошибок.

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

- подключаем свой код к Этлипсу:
File->New->Other->C/C++->Makefile Project with Existing Code
- тут высталяем Cross GCC Toolchain. именно его, ибо если выставить какой-нибудь min-GW Toolchain,то Eclipse будет лезть в свои хедеры вместо нужных. 
- Создаём где-нибудь папку (include) для правильных хедеров и тянем с оригинального билд-сервера следующее:
Цитата

/usr/include/ *.h
/usr/include/aCC_std
/usr/inclide/aCC
/usr/include/sys

можно и всё притянуть, но это скорее всего лишнее, да и нагружать и без того идиотский индексер Эклипа не стоит.

- правый клик по проекту (ПКМ)->properties->C/C++ General->Paths and Symbols->Include tab 
и добавить с галками "во все языки" и "во все профили" нижеследующее:
Цитата

...\include

...\include\aCC_std
...\include\aCC_std\iostream_compat
...\include\aCC_std\rw

...\include\aCC
...\include\aCC\iostream
...\include\aCC\rw
...\include\aCC\rw\stdex

...\include\ia64_hpux\rtworks
...\include\ia64_hpux\rtworks\modules
...\include\ia64_hpux\rtworks\unix

...\include\rtworks
...\include\rtworks\modules
...\include\rtworks\unix

Там же переключаемся на закладку символов и добавляем дефайны без значений. У меня получилось примерно так:
Цитата

_INCLUDE_HPUX_SOURCE
_INCLUDEPOSIX_SOURCE
_INCLUDE_XOPEN_SOURCE_EXTENDED

принцип прост. К этому моменту все инклуды должны были у вас разрезолвиться и находиться по F3 в вашей папке Include. 
находим в коде неразрезолвленную функцию. идём в её хедер и серчаем её в хедере. очеводно она будет найдена в "сером" блоке дефайна, который неопределён в коде. копируем его в символы. Готово!

переиндексация обязательна! ПКМ по проекту
Цитата

 ->Indexer->Re_build
 ->Indexer->Re_fresh
 ->Indexer->Re_everything_else until success.


- индексер очень туп и тормознут, рекомендую галочки для него выставить вот так:
user posted image

-------------
На последок расскажу ешё один велосипед. 
бывает так что вы всё сделали правильно, и даже бывает, что по F3 вы правильно переходите, а код всё равно покрыт гущей красных ошибок...
Это опять дурит индексер, мать его! чтобы его прочистить нужно в настройках проекта сменить Toolchain, перезапустить Eclipse, выставить обратно Cross GCC и перезапустить ещё раз.  smile

Добавлено через 13 минут и 36 секунд
у меня ешё есть идея задействовать QT Creator... там у него много всяких возможностей...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)