Просмотр сообщений
Страниц: [1] 2 3 ... 15
1  Разработка / Перенос приложений в QNX / Re: CppUnit порт для QNX6 : Августа 14, 2018, 07:19:27 pm
я поставил Mate. Smiley Меня просто достала windows 7 (я мог бы и XP поставить, но решил в качестве эксперимента всё же перейти хотя бы на семёрку). Она просто неудобная. Тупой проводник без кнопки 'на уровень выше',часто забывающий переключать папку по одинарному щелчку. Тормоза Firefox. Испорченный Paint. Нет, пора на Linux возвращаться после десятилетнего перерыва. Smiley Правда, вот чего я в линуксах не люблю, так это постоянные изменения с каждым обновлением. Я всё же люблю стабильность... Ну и система пакетов меня раньше доводила до белого каления, когда в системе половина мусора, который используют 1.5 приложения, а этот мусор тащит свои зависимости разных версий. Ставишь из тарбола программу, а ей ещё 100 пакетов надо, а им ещё, а ещё один не совместим с тем, что уже есть. Тут хоть apt работает автоматически. Вроде бы. Smiley

Цитировать
Ну а окружений рабочего стола - пактически в любом линухе на любой вкус и цвет.

Игра в конструктор меня не прельщает. Потому я и не ставил gentoo. Smiley
2  Разработка / Перенос приложений в QNX / Re: CppUnit порт для QNX6 : Августа 14, 2018, 03:27:54 pm
Не, Debian такая же, как и Ubuntu.
Я Mint поставил. Он мне понравился. Smiley
3  Разработка / Перенос приложений в QNX / Re: CppUnit порт для QNX6 : Августа 13, 2018, 05:59:19 pm
Цитировать
Она была в dos.h, которого под unix-ами нет

Логично. Smiley Просто delay находится в unistd. А "<unistd.h> содержит различные основные функции и константы POSIX". Потому я и думал, что она везде, где POSIX есть должна быть.

Цитировать
Вы, наверное, с QNX 6.6 путаете, там как раз Photon нет.

Наверное. Я дальше 6.5 не смотрел. Smiley

Цитировать
Вероятно должно. На какие-то ЕС1866 ставится. Они же разные бывают по начинке, да?

Судя по буклету, по которому заказывали, там вариативность небольшая.
4  Разработка / Перенос приложений в QNX / Re: CppUnit порт для QNX6 : Августа 13, 2018, 02:21:21 pm
Цитировать
Зачем Вам знать про pkg-config и каталоги? Вопросы опять же риторические.

Не всегда ведь проект делается в IDE. Да и вот свежий пример: решил-таки Linux поставить. Смотрим, что у нас есть из популярного:
Fedora
Mint
Ubuntu
OpenSuSe
Mageia
Astra Linux

У всех (кроме Astra) перечисленных графика оформления в стиле современных мультфильмов - примитивизм в дизайне жуткий. Смотреть просто противно. Все эти градиенты чистых цветов просто уродство. Но я помню, 14 лет назад я сидел на Mandrake и Red Hat и там мне решительно нравились темы оформления окон в KDE и вообще общий дизайн. Жаль, больше они не работают на современных системах. А что за хрень штампуют сейчас? Убить этих дизайнеров.
Ubuntu 16.10 отказалась ставить mc по atp install! Не доверяет, говорит, репозиторию! И вылетает в ошибку сразу после загрузки на I5. Копирование на IDE-винчестер шло со скоростью 10...9...8...1.5 Мб/с. Это шутка такая? Windows 7 только что на этом винчестере летала. Ну и дурацкая панель вместо "пуск". То же и у Fedora.
Более-менее Mint нормально работает. Но дизайн всё равно отвратный.
Mageia 3 была ещё ничего. Но Mageia 6... всё тот же отвратный дизайн.
У Astra всё вроде бы есть, но что-то я задолбался её на Уране настраивать. То порты com не видит, то запись в lpt только root имеет (sudo не помогает).
Наверное, всё же Mint поставлю.

Цитировать
Во-первых, если бы Вы внимательно прочитали документацию,

Честно говоря, я поражаюсь памяти присутствующих. Smiley Я давно забыл, что где и как читал. И что там написано. А вы всё помните. Smiley Как вам это удаётся?! Roll Eyes А так, я был уверен, что delay штатная функция unix. Да она и в ms-dos вроде бы была...

Цитировать
Ну а, во-вторых, аналог delay() на POSIX вызовах делается за 5 минут с учётом гугления.

Сделать-то я сделал, но осадочек остался. Smiley

Цитировать
Вместо QNX 6.5 вам бы закупить ЗОСРВ «Нейтрино».

А ПО для QNX 6.3 на нём работает? Или там Qt и от фотона одни воспоминания? Smiley Ну и главная головная боль - ставится и работает ли оно на таком чуде, как бывшая ЕС-1866, а ныне Уран-2.

Хотя, написано "Технологии Qt, GTK, Photon".

Цитировать
Да и сравниваете Вы MSVS 6.0 и 2010 на современном железе под Windows и IDE Momentics 2.2 на урезанной Java под QNX.

Ну уж VC 6 у меня на совсем слабых системах работала гораздо быстрее, чем Momentics 2.2 на современном железе.

Цитировать
Недавно запускал свежий MSVS на виртуалке под Core i5 выделив ей 4 ядра и 8 гигов оперативки — работать нельзя

Это которой 40 ГБ надо? Нет, я такое не использую. К счастью. Потому и остановился на 2010 и Windows XP Smiley

Цитировать
из за особенностей реализации Java под QNX.

Честно говоря, плохо представляю, что там можно было сделать такого, чтобы сама Java ТАК отжирала процессор. И при этом скорость работы от процессора (начиная с определённых частот) почти переставала зависеть.  Roll Eyes
5  Разработка / Перенос приложений в QNX / Re: CppUnit порт для QNX6 : Августа 10, 2018, 07:56:55 pm
Цитировать
Ну, хочется человеку найтивно... А может, подругому никак...

Так для кросскомпиляции придётся таскать ещё отдельный компьютер. Настраивать его. Беречь от вирусов (а в QNX я спокойно сую любые флэшки и даже не задумываюсь). Да и, если честно, приятно в чистом UNIX работать. Просто приятно. Вот чисто эстетически. Smiley Можно, конечно, под Linux работать, но вот его-то я как раз не люблю: вот эти pkg-config --cflags libusb-1.0 в makefile появились потому, что в разных дистрибутивах библиотеки раскидывались в разные каталоги, что меня так просто выводит из себя. Ну и почему в unistd в linux нет delay я тоже понять не могу. Roll Eyes Портировали тут часть моей QNX-программы под Astra-Linux, релиз "Орёл". И оказалось, delay-то отсутствует в системе. Cool
Впрочем, вот купят QNX 6.5 и попробую кросскоспиляцию. (я надеюсь. А то есть подозрение, что QNX 6.5 вояки не разрешат. ГК, конечно, уверенно кричал, что поставим, что нам надо на ноутбуки (туда 6.3 и 6.4 не поставить), когда я его предупреждал под что будет написано ПО, но я думаю, он себя переоценил, и всё это зарубят на присвоении литеры. Переписывать под этот "Орёл" на QT программу с кучей фотоновской графики и специфических QNX-вещей - да проще послать их всех нафиг).

Цитировать
но второй, имхо, как-раз более понятный

Ну вот так получилось, что у меня наоборот. Smiley

Цитировать
Первое скорее всего кусок, который включится в какойто дефолтный makefale инклюдом.

Ну, не совсем. Там есть ещё cppexamp.mif (подключаемый в тот makefile):

Код:
# cppexamp.mif
#
# This file is always included by makefiles's in sample sub-directories.
#
# Note: the file includes local.mif from this directory; local.mif is empty
#       as shipped.  It can be used for any customization required in a
#       particular installation.
#


!include ../local.mif

.extensions:
.extensions: .exe .lnk .obj .cpp .c

!ifndef cpp_compiler
!   ifdef __NTAXP__
!       define cpp_compiler wppaxp
!       define c_compiler wccaxp
!   else
!       define cpp_compiler wpp386
!       define c_compiler wcc386
!   endif
!endif

!ifndef linker
!   define linker wlink
!endif

!ifndef link_cmds
!   define link_cmds linkpgm.lnk
!endif

!ifndef cpp_options
!   define cpp_options -zq -xs -d1
!   define c_options -zq -d1
!endif

.cpp.obj: .AUTODEPEND
    $(cpp_compiler) $(cpp_options) $[*

.c.obj: .AUTODEPEND
    $(c_compiler) $(c_options) $[*

pump.exe: $(objects) $(link_cmds)
    $(linker) @$(link_cmds)

linkpgm.lnk: $(__MAKEFILES__) ../local.mif
    @%create $^@
    @%append $^@ NAME    pump
    @%append $^@ OPTION  quiet, eliminate, map, show
    @%append $^@ DEBUG   all
    @for %i in ($(objects)) do @%append $^@ FILE    %i

clean: .SYMBOLIC
    @if exist *.exe del *.exe
    @if exist *.lnk del *.lnk
    @if exist *.obj del *.obj
    @if exist *.map del *.map
    @if exist *.err del *.err

Ну и запускает компиляцию wc.bat:

Код:
@echo off
set __opath=%path%
set path=c:\lang\watcom10\bin;c:\lang\watcom10\binw
set __oinc=%include%
set include=c:\lang\watcom10\h
set watcom=c:\lang\watcom10\.
del pump.exe
wmake

Вот и всё.

Но, впрочем, например, для приставки PSP я свои проекты собирал таким makefile:
Код:
TARGET = 3dengine
OBJS =ccontrol.o cdecorator_cisector.o cengine_base.o vram.o cengine_gportal.o cgraph.o ciengine.o cisector.o ckeyboard.o cmouse.o common.o cplayer.o csimplybridge.o csimplydoor.o csimplyplatform.o csimplysector.o csimplyteleport.o cswitchsector.o ctexturefollow.o cunit.o cvideo.o localmath.o cwallmap.o main.o
INCDIR =
CFLAGS = -O3 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
LIBDIR =
LDFLAGS =
LIBS =-lpspgum -lpspgu -lm -lstdc++ -lpspaudiolib -lpspaudio -lpsprtc
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = 3dengine
PSP_EBOOT_ICON = ICON.PNG
PSP_EBOOT_ICON1 =
PSP_EBOOT_UNKPNG = PIC.PNG
PSP_EBOOT_PIC1 =
PSP_EBOOT_SND0 =
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak

В целом, он тоже мне почти понятен.

Цитировать
Во-первых, можете попробовать IDE 7.0 вместо IDE 4.7

А у меня в 6.3 версия IDE 2.2.  Cheesy

Цитировать
любая IDE будет тормозить, мне неизвестны не тормозящие IDE.

CodeBlocks не тормозит.  Roll Eyes Visual Studio 6 и 2010 (я выше не ставил) не тормозит. А IDE Momentics обожает замирать на минутку-другую, пытаясь разобрать файл исходника (чем больше в файле ошибок, тем больше она тормозит. Со временем она набирает кодовую базу что ли и тормозит уже меньше. А потом у неё сбой кодовой базы и приходится стирать один файлик в workspace. Тогда всё начинается заново. Причём, тормозит она больше всего на фотоновских приложениях - там, видно, куча библиотек;пока все обегаешь в поисках функций...). Изменил буковки, нажал Save и можно отдыхать. И это как бы на на хорошем таком промышленном компьютере. Smiley

Цитировать
Со времён 6.2 акцент разработки уже окончательно сместился в сторону кросс-разработки.


Есть у меня подозрение, что IDE тормозит из-за каких-то архитектурных особенностей именно QNX. Причём, компьютеры всё мощнее, а тормоза те же. Уж не связано ли это с блокировкой потоков на каком-либо объекте синхронизации, которая привязана с системному такту?
И я подозреваю, что невозможность запустить IDE с приемлемой скоростью и привели к кроссплатформенной разработке. Чтобы жалоб меньше было. Smiley
6  Разработка / Перенос приложений в QNX / Re: CppUnit порт для QNX6 : Августа 09, 2018, 08:55:00 pm
Так "про это" я с самого начала делал. Но этого оказалось мало.

Что касается своего makefile: здорово, наверное, быть знатоком UNIX-систем, но это не про меня от слова совсем. Smiley У меня от остального-то голова пухнет (да хотя бы от новых стандартов Си++ и непоняток, как всё-таки правильно по современным подходам писать ПО). То есть, makefile такого уровня, как в common.mk я не напишу никогда.
Вот пример доступного для меня по пониманию makefile для досовского Watcom 10:

Код:
# MEMBFUN

pump: .SYMBOLIC pump.exe

objects =main.obj &
cedit.obj &
cmain.obj &
cautomat.obj &
cbutton.obj &
vesa.obj &
ciodata.obj &
cwindow.obj &
font.obj &
cdevice.obj &
cgraphic.obj &
clistbox.obj &
ckbd.obj &
cvideo.obj &
clexeme.obj &
cla.obj &
csa.obj &
tga.obj

cpp_options = -s -5r -5s -fp3 -otiarnlm -bt=dos

!include ../cppexamp.mif

Вот его я понимаю. Smiley

А вот такое, уже слабо понимаю:

Код:
TARGET=$(shell basename `pwd`)
CC=g++
CFLAGS+=$(shell pkg-config --cflags libusb-1.0)
LDFLAGS=$(shell pkg-config --libs libusb-1.0)
SOURCES=main.cpp cflironecontrol.cpp tga.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=flirone

all: $(SOURCES) $(EXECUTABLE)

$(EXECUTABLE): $(OBJECTS)
$(CC) $(LDFLAGS) -o $@ $(OBJECTS) $(LDFLAGS) -lm -Wall 

.cpp.o:
$(CC) $(CFLAGS) -c $< -o $@

clean:
rm -f cflironecontrol.o main.o tga.o flirone
7  Разработка / Перенос приложений в QNX / Re: CppUnit порт для QNX6 : Августа 08, 2018, 12:34:09 pm
Там не в этом дело, PoP. Там вся мякотка в том, что после указания каталога как дополнительного, IDE забывает про каталог src, который у неё был основной для исходников (до добавления отдельных каталогов, IDE с src работала). То есть, я-то думаю, что добавляю каталог к уже существующему в списке каталогов с исходниками src, а на самом деле src в список тоже надо после такого добавлять самому.
8  Разработка / Перенос приложений в QNX / Re: CppUnit порт для QNX6 : Августа 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). А убрать его в соответствии с настройками проекта она не пожелала.
9  Разработка / Перенос приложений в QNX / Re: CppUnit порт для QNX6 : Августа 06, 2018, 05:51:47 pm
Новая информация от kpda. Оказывается, не OBJ надо добавлять, а EXTRA_SRCVPATH+=$(PROJECT_ROOT)/ . Завтра проверю. И, надеюсь, заработает.
10  Разработка / Перенос приложений в QNX / Re: CppUnit порт для QNX6 : Августа 06, 2018, 02:13:29 pm
Задал этот интересный вопрос с раскидыванием проекта по папкам на kpda.ru.
Посоветовали в common.mk (как я понял) вписать EXTRA_OBJS+=$(PROJECT_ROOT)/ ну и тут путь к объектникам. Но ни фига не работает - во-первых, оно желает видеть в EXTRA_OBJS не путь к папке, а сами файлы объектников. А во-вторых, если я туда прописываю имя файла, оно не компилирует этот файл, а просто ругается, что нет правила для его сборки.
Дурацкая IDE, конечно. Sad
11  Разработка / Перенос приложений в QNX / Re: CppUnit порт для QNX6 : Августа 03, 2018, 01:27:24 pm
Цитировать
Исходники можно раскидать по разным папкам (как внутри проекта, так и снаружи) и  добавлять выборочно (но только папку целиком):

Файлы в папках компилируются, но эта чудесная IDE пытается сразу после компиляции из этих файлов из папки собрать проект. Что, естественно, не получается, так как в проекте объектников слегка больше, чем модулей в папке. Как ей объяснить, что линковку делать надо потом, я не представляю.  Cool
12  Разработка / Перенос приложений в QNX / Re: CppUnit порт для QNX6 : Августа 03, 2018, 12:21:10 pm
Цитировать
Там есть всякие $(PROJECT_ROOT) и т.д. Внутри workspace всё переносимо.

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

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

Может быть. Smiley
13  Разработка / Перенос приложений в QNX / Re: CppUnit порт для QNX6 : Августа 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
14  Разработка / Перенос приложений в QNX / Re: CppUnit порт для QNX6 : Августа 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 уж и не говорю.
15  Разработка / Перенос приложений в QNX / Re: CppUnit порт для QNX6 : Августа 02, 2018, 08:43:56 am
Хотя, пока вопрос снимается - 1.13 собралась вроде бы. Осталось понять, как с ней работать. Smiley
Страниц: [1] 2 3 ... 15