QNX RTP Logo QNX Realtime Platform: Русский Портал QNX
Friday, 21 Nov 2008 09:42
Меню

Проект OpenNET - все о Unix
Главная

 · Начало · Статистика · Поиск ·

  QNX.ORG.RU —› Перенос приложений в QNX —› Porting a Linux application to QNX

Посл.ответ Сообщение


Дата: 23 Янв,  14:32

I have an application which successfuly compiles under linux plus it is POSIX compatible, I want to port it to QNX,
but I have problems running the executable, I've successfuly compiled it in QNX using gcc, there were no errors, but when I run it, it outputs something like this:

unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
unknown symbol:
Could not resolve all symbols

My application uses dynamic libraries, maybe that's where the problem is, but if so, why did the linker linked my application successfuly ?

It's all strange, because I used the same Makefile to compile the application under Linux and QNX. In Linux I had no problems, in QNX - this strange bug. Any ideas what can it be ?


Дата: 24 Янв,  08:12

It's a C++, g++ 2.95.3 compiler suite problem. Use g++ 3.3.1/3.3.5 or forget about porting linux C++ application to QNX. The main rule is easy to memorize - C++ and QNX are not compatible with each other, in future you'll got much more funnies with it ...


Дата: 24 Янв,  16:08

Actually, I tried to compile it with gcc 3.3.1, but I had problems, I used the following command line (like in QNX manual):
QCC -V3.3.1,gcc_ntox86 ...
This time it's compilation problems, I'll post them here a bit later, may be someone will be able to help. Thank you!


Дата: 25 Янв,  07:25

It's better not to use 3.3.1 - update QNX 6.3 upto SP2 and use 3.3.5.


Дата: 25 Янв,  08:24

Sheff
QCC -V3.3.1,gcc_ntox86 ...


QCC -V3.3.1,gcc_ntox86 -Y_gpp

? :

Sheff
application which successfuly compiles under linux


Дата: 30 Янв,  19:21

Thanks everyone, my app have been successfuly compiled with qcc 3.3.5


Дата: 1 Мар,  12:26

Sheff
I have an application which successfuly compiles under linux plus it is POSIX compatible, I want to port it to QNX,


попался вот этот текст:
http://www.computer-museum.ru/histsoft/posix_rt.htm

т.е. ... как бы это лучше сказать по-русски? :

"... QNX утверждает свою совместимость с POSIX, но POSIX не утверждает свою совместимость с QNX ..." - так?
- причём написано это при участии Н.Горбунова, которому мы в этих вопросах должны свято верить .


Дата: 2 Мар,  12:23 · Поправил: Olej

вот этот текст выше - опубликован в 1-й половине 2005г., там же есть фраза:

Компания QNX Software Systems, создатель QNX Neutrino, планирует также сертификацию (conformance) QNX Neutrino по некоторым из этих стандартов; работы запланированы на 2005 г. (www.qnx.com/news/pr_959_1.html).


по этой указанной ссылке:

BALTIMORE, MD, Military & Aerospace Electronics East - May 18, 2004 - To support the US military’s goal of standardizing on tested, reusable software applications and code, QNX Software Systems today committed to achieving full certification with the Portable Operating System Interface (POSIX) standard, 1003.1-2001 (POSIX.1), as amended in 2003. QNX was the first realtime operating system (RTOS) vendor to certify conformance to POSIX.1, and is the undisputed leader in adherence to the broadest range of POSIX API specifications.

Compared to the conformance claimed by other RTOS vendors based on earlier POSIX editions, the 2003 edition of the specification triples the scope of programming interfaces required for conformance. To become POSIX certified, the QNX Neutrino RTOS will be tested with more than 1,300 POSIX interfaces. Full certification is expected to be achieved within six to twelve months.

т.е. в мае 2004 они планировали это сделать в 6-12 мес., т.е. к августу 2005 max ...

Никто не может что-то сказать о дальнейшей судьбе этого намерения?


Дата: 14 Мар,  13:52

>> unknown symbol:
>> Could not resolve all symbols

Я вижу ети сообшения, когда и динамические и статические версии библиотек (ошибочно) присутствуют в ../lib директории. Если удалить все библиотеки и заново прогнать build с теми же обьектными фаилами, ошибка исчезает.

Вопрос:
Я пытаюсь уменьшить размер бинарнонго фаила приложения портированнонго из линукса в QNX.
На 95 процентов исходники написаны на С++. Все, что возможно, слинковал статически. Отстрипал.
При одинаковои source base под Линухом получаю 1.7 МБ с g++ 4.1.2 , a под QNX с g++ 3.3.5 - 2.6 МБ
(размеры указаны уже после "стрипа"[img]http://qnx.org.ru/components/minibb/img/smilies/wink.gif[/img]
Вопрос к бывалым: Учитывая, что 4.1.2 (как говорят) гораздо оптимальнее чем 3.3.5 для размера бинарнинка, стоит ли дальше бороться за уменьшение размера и в какую сторону копать ?
Спасибо.


Дата: 15 Мар,  18:59

Yuv
стоит ли дальше бороться за уменьшение размера и в какую сторону копать ?

очень интересный способ борьбы с размером файла - линковать статически.


Дата: 15 Мар,  20:08

>> очень интересный способ борьбы с размером файла - линковать статически.

дело в том, что аппликуха "highly configurable" через compile-time options со множеством шаред либов.
Поетому статическое линкование позволяет избежать необходимости тащить особенно тяжелие "генеральные" либы на флаш.


Дата: 16 Мар,  10:54

По уточненным данным размер бинарного фаила после компиляции с g++ 3.3.5 под qnx получился 2.0 МБ (vs 1.7 MB - g++ 4.1.2 под линухом). Так что результаты сопоставимы.


Дата: 16 Мар,  10:56

У меня разницы в размере исполняемых файлов практически не было разницы. Приведите строки компиляции (частично) и строки линковки, те, которые вызывают gcc.


Дата: 16 Мар,  12:55 · Поправил: Yuv

решил почистить оутпут... слишком многа букафф


Дата: 16 Мар,  13:09 · Поправил: Yuv

...


Дата: 16 Мар,  14:03

lestat
Приведите строки компиляции (частично) и строки линковки, те, которые вызывают gcc.


Не охота засорять форум избытком текста. А подчищать до удобочитаемого вида - пока времени нет.
Как я уже сказал, размер в данныи момент отличается на 260к (2000К против 1740к) пока етого достаточно.
Может быть, мне придется вернуться к етому вопросу позже, тогда уже приведу почишенныи оутпут.

--------------------
Тем не менее спасибо за информацию, что размеры должны быть практически идентичны. Будем ориентироваться на ето.

You must login to post.

©   2000-2003 Команда проекта QNX.ORG.RU // QNX.ORG.RU Team
Авторы проекта: Дмитрий Алексеев [dmi] и Дмитрий Васильев. Техническое сопровождение проекта: Игорь Сорокин [isorokin]. Информационное сопровождение: Дмитрий Алексеев [dmi]
QNX - зарегистрированная торговая марка QNX Software Systems, Ltd., Canada. Остальные упоминаемые на сайте торговые марки и логотипы являются исключительно собственностью их уважаемых владельцев. Ничьи права не затронуты. Материалы сайта не могут быть скопированы и где-либо использованы в той или иной форме без письменного разрешения разработчиков сайта.
Powered by Mambo Open Source