Страниц: [1] 2 3
  Печать  
Автор Тема: CppUnit порт для QNX6  (Прочитано 9526 раз)
kim
Участник
*
Offline Offline

Сообщений: 2


Просмотр профиля
« : Октября 17, 2002, 06:57:00 pm »

Может кто использует subj? Поделитесь опытом переноса в QNX.
У меня все собирается ОК, но вот сами тесты при запуске . memory fault
Записан
lestat
QOR.Moderator
*****
Offline Offline

Сообщений: 985


I don't trust anything


Просмотр профиля WWW
« Ответ #1 : Октября 17, 2002, 07:19:00 pm »


Может кто использует subj? Поделитесь опытом переноса в QNX.
У меня все собирается ОК, но вот сами тесты при запуске . memory fault

Там библиотекой сделано или линкуется прямо с программой ? Если первое, то видать ты неправильно собрал библиотеку, смотри, на форуме, тут уже раза 3 эта тема поднималась - про правильность сборки библиотеки.
Записан

kim
Участник
*
Offline Offline

Сообщений: 2


Просмотр профиля
« Ответ #2 : Октября 17, 2002, 11:02:00 pm »

Все верно - неправильно собрал библиотеку (и я напоролся на эти грабли), спасибо, lestat.
Записан
da-nie
Full Member
***
Offline Offline

Сообщений: 220



Просмотр профиля
« Ответ #3 : Августа 02, 2018, 08:24:16 am »

А нет ли у кого готовой сборки для QNX 6.3? Я попробовал собрать текущую версию, но она жаждет компилятор с Си++ 11.
« Последнее редактирование: Августа 02, 2018, 08:26:04 am от da-nie » Записан

И день и ночь в пути
da-nie
Full Member
***
Offline Offline

Сообщений: 220



Просмотр профиля
« Ответ #4 : Августа 02, 2018, 08:43:56 am »

Хотя, пока вопрос снимается - 1.13 собралась вроде бы. Осталось понять, как с ней работать. Smiley
Записан

И день и ночь в пути
da-nie
Full Member
***
Offline Offline

Сообщений: 220



Просмотр профиля
« Ответ #5 : Августа 02, 2018, 11:48:08 am »

А не, не получилось. Не линкуется. У меня тест в файле CUnitTest. После компиляции всех файлов возникает вот такая вот проблема, как на картинке. Вот тут есть что-то про глюки компилятора:
Цитировать
2.95.3 компилятор собирает всё, но когда доходит до тестов валится при линковке с кучей не найденных имён классов в libstdc++.so.5, от 2.95.3 другого ожидать не приходится.
3.3.5 компилятор всё собрал: и make и make check.
У меня в 6.3 SP 3, как я понимаю, 2.95.3.
Интересно, это вот оно обсуждалось в той теме?

Upd. Собрал CppUnit с помощью 3.3.5. И проект тоже им же. Всё равно проблемы с линковкой. Странно, вроде и libcppunit.so указал, а всё равно что-то не то.
Кстати, ни у кого нет готовой сборки gcc 3.3.5 и выше (что, конечно, лучше)? Хоть в исходниках (но только что б они в QNX 6.3 собирались Smiley ). В 6.3 SP 3 есть gcc3.3.5, а без SP только 3.3.1. А я загружаю 6.3 SP 3 и выбираю раздел с 6.3 без SP. Потому как в SP3 работать невозможно - IDE тормозит на порядок больше и даже отключение анализатора не помогает. Кстати, может, кто ещё знает, как в этом самом IDE файлы проекта по папкам раскидать? А то я держу все файлы h и cc в одном каталоге. У неё странная логика сканировать каталог и компилировать то, что она насканировала. И в каталогах насканированное она не компилирует ни в какую. А правильно было бы чтобы файлы вручную добавлялись в проект, как в Visual Studio, Code Block и тому подобных IDE. Из-за этого приходится все файлы держать, как в помойке в одном каталоге.

Upd2. Скачал gcc 4.2.1 и binutils-2.17 с community.qnx.com . Распаковал в Qnx 6.3 SP3 (вроде как ставили в 6.5, как я понял, но у меня её нет). Выполнил qcc -V. В IDE появился новый компилятор. Указал в проекте компилятор 4.2.1. Дальше неприятное: "hello word" собрался, но только если на stdio и printf. Стоит подключить хотя бы просто iostream и всё - у компилятора проблемы со сборкой библиотек. Про stl уж и не говорю.
« Последнее редактирование: Августа 03, 2018, 11:40:02 am от da-nie » Записан

И день и ночь в пути
PoP
Sr. Member
****
Offline Offline

Сообщений: 351


Просмотр профиля
« Ответ #6 : Августа 03, 2018, 11:39:43 am »

GCC поновее можно посмотреть тут Foundry27.
Исходники можно раскидать по разным папкам (как внутри проекта, так и снаружи) и  добавлять выборочно (но только папку целиком): Project->Properties->QNX C/C++ Project->Compiler->Category->Extra sources paths (Extra include paths).
Записан
da-nie
Full Member
***
Offline Offline

Сообщений: 220



Просмотр профиля
« Ответ #7 : Августа 03, 2018, 11:42:52 am »

Спасибо, я просто только что обновил сообщение с допиской, что я скачал 4.2.1, но он не работает, как надо в QNX 6.3.

Цитировать
Исходники можно раскидать по разным папкам (как внутри проекта, так и снаружи) и  добавлять выборочно (но только папку целиком): Project->Properties->QNX C/C++ Project->Compiler->Category->Extra sources paths (Extra include paths).

Хм. Я так делал для каталогов CPPUnit, но для своих каталогов не догадался. Roll Eyes Попробую. Спасибо!
Правда, а там случайно не абсолютный путь прописывается? Нужен-то относительный. Хотя, если получится задать путь через ./ и оно это съест, то проблема решится. Smiley
« Последнее редактирование: Августа 03, 2018, 11:46:08 am от da-nie » Записан

И день и ночь в пути
PoP
Sr. Member
****
Offline Offline

Сообщений: 351


Просмотр профиля
« Ответ #8 : Августа 03, 2018, 12:11:23 pm »

Там есть всякие $(PROJECT_ROOT) и т.д. Внутри workspace всё переносимо.
По gcc - может всёже собирать на host машине ? И новые компиляторы будут работать, и IDE гораздо шустрей.
Записан
da-nie
Full Member
***
Offline Offline

Сообщений: 220



Просмотр профиля
« Ответ #9 : Августа 03, 2018, 12:21:10 pm »

Цитировать
Там есть всякие $(PROJECT_ROOT) и т.д. Внутри workspace всё переносимо.

То есть, путь можно указывать типа $(PROJECT_ROOT)/Unit?

Цитировать
По gcc - может всёже собирать на host машине ? И новые компиляторы будут работать, и IDE гораздо шустрей.

Может быть. Smiley
Записан

И день и ночь в пути
da-nie
Full Member
***
Offline Offline

Сообщений: 220



Просмотр профиля
« Ответ #10 : Августа 03, 2018, 01:27:24 pm »

Цитировать
Исходники можно раскидать по разным папкам (как внутри проекта, так и снаружи) и  добавлять выборочно (но только папку целиком):

Файлы в папках компилируются, но эта чудесная IDE пытается сразу после компиляции из этих файлов из папки собрать проект. Что, естественно, не получается, так как в проекте объектников слегка больше, чем модулей в папке. Как ей объяснить, что линковку делать надо потом, я не представляю.  Cool
« Последнее редактирование: Августа 03, 2018, 01:35:29 pm от da-nie » Записан

И день и ночь в пути
da-nie
Full Member
***
Offline Offline

Сообщений: 220



Просмотр профиля
« Ответ #11 : Августа 06, 2018, 02:13:29 pm »

Задал этот интересный вопрос с раскидыванием проекта по папкам на kpda.ru.
Посоветовали в common.mk (как я понял) вписать EXTRA_OBJS+=$(PROJECT_ROOT)/ ну и тут путь к объектникам. Но ни фига не работает - во-первых, оно желает видеть в EXTRA_OBJS не путь к папке, а сами файлы объектников. А во-вторых, если я туда прописываю имя файла, оно не компилирует этот файл, а просто ругается, что нет правила для его сборки.
Дурацкая IDE, конечно. Sad
« Последнее редактирование: Августа 06, 2018, 05:50:43 pm от da-nie » Записан

И день и ночь в пути
da-nie
Full Member
***
Offline Offline

Сообщений: 220



Просмотр профиля
« Ответ #12 : Августа 06, 2018, 05:51:47 pm »

Новая информация от kpda. Оказывается, не OBJ надо добавлять, а EXTRA_SRCVPATH+=$(PROJECT_ROOT)/ . Завтра проверю. И, надеюсь, заработает.
Записан

И день и ночь в пути
da-nie
Full Member
***
Offline Offline

Сообщений: 220



Просмотр профиля
« Ответ #13 : Августа 07, 2018, 07:18:41 pm »

Всё оказалось очень просто. Настроить дополнительные папки можно прямо из IDE. Она сама заполняет EXTRA_SRCVPATH и EXTRA_INCVPATH.
НО (!) вот в чём фишка: при незаполненных EXTRA_INCVPATH компиляция идёт в каталоге $(PROJECT_ROOT)/src. Если же я добавляю папку, то почему-то про каталог src система забывает. А я-то думал, он изначально по-умолчанию указан как основной. Вот и вся проблема. Нужно просто указать так же в EXTRA_SRCVPATH и EXTRA_INCVPATH и каталог $(PROJECT_ROOT)/src. И всё начинает работать, как надо.

Я разбил проект по папкам с иерархией (41 папка) и теперь почему-то он автоматически компилирует и debug-реализацию, хотя в настройках проекта стоит только release.  Roll Eyes Как так вышло, ума не приложу.  Undecided

Upd. Оказалось, IDE на каком-то этапе создала makefile в папке, где формируется debug-реализация (o-g, там не было makefile). А убрать его в соответствии с настройками проекта она не пожелала.
« Последнее редактирование: Августа 08, 2018, 09:58:19 am от da-nie » Записан

И день и ночь в пути
PoP
Sr. Member
****
Offline Offline

Сообщений: 351


Просмотр профиля
« Ответ #14 : Августа 08, 2018, 11:12:31 am »

Всё оказалось очень просто. Настроить дополнительные папки можно прямо из IDE. Она сама заполняет EXTRA_SRCVPATH и EXTRA_INCVPATH.
Вам об этом и писали. Читайте внимательнее ответы.
Исходники можно раскидать по разным папкам (как внутри проекта, так и снаружи) и  добавлять выборочно (но только папку целиком): Project->Properties->QNX C/C++ Project->Compiler->Category->Extra sources paths (Extra include paths).
Записан
Страниц: [1] 2 3
  Печать  
 
Перейти в: