nanorobot 3 2 июля, 2015 Опубликовано 2 июля, 2015 · Жалоба Поннравился механизм signal/slot в Qt. Его реализация обеспечивается препроцессором moc. То есть теоретически есть возможность его использования вне Qt. Реализовать соответствующий алгоритм в makefile и вперед. Лично моей квалификации на это пока не хватит. Мож делал кто? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Johnny81 0 2 июля, 2015 Опубликовано 2 июля, 2015 · Жалоба Ну вообще то там две части - с одной стороны препроцессор (который обеспечивает удобный синтаксис объявления сигналов/слотов) а с другой - поддержка в библиотеке (которая обеспечивает работу всего этого во время выполнения) Просто взять и выдрать из Qt сигналы/слоты врядли получится - они потянут еще какие-то части QtCore. Если процессор "жирный", то можно просто взять Qt и скомпилировать его часть (эту самую QtCore) для данного процессора. Или можно посмотреть на буст, там есть нечто похожее - signals2, который (насколько я помню) компиляции не требует. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nanorobot 3 2 июля, 2015 Опубликовано 2 июля, 2015 (изменено) · Жалоба Просто взять и выдрать из Qt сигналы/слоты врядли получится - они потянут еще какие-то части QtCore. Если процессор "жирный", то можно просто взять Qt и скомпилировать его часть (эту самую QtCore) для данного процессора. Правильно ли я понял, что можно собрать Qt, который будет генерировать код, не привязанный к ОС , например, линуксу? Напрямую из Вашего поста это не следует, но если нет, тогда к чему эти манипуляции? Просто берем и пишем для линуха PS не знаю процента жирности LPC435xx Изменено 2 июля, 2015 пользователем nanorobot Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Johnny81 0 2 июля, 2015 Опубликовано 2 июля, 2015 · Жалоба Правильно ли я понял, что можно собрать Qt, который будет генерировать код, не привязанный к ОС , например, линуксу? Напрямую из Вашего поста это не следует, но если нет, тогда к чему эти манипуляции? Просто берем и пишем для линуха Qt большая. Сигналы и слоты относятся к QtCore, которую, по идее, можно собрать и без ОС (но скорее всего весьма непросто :) ) Стоит ли овчинка выделки только ради сигналов/слотов - хз, мне кажется много проще взять std::function. Как-то так struct MyCoolObject { std::vector<std::function<void(int a)> > subscribers; void fireEvent() { for (auto &s: subscribers) s(42); } } obj; obj.subscribers.push_back([](int a) { std::cout<< a;}); obj.fireEvent(); PS не знаю процента жирности LPC435xx 200 МГц, 1 Мб ПЗУ и 136 кб ОЗУ - ну хз, сильно зависит, сколько сожрет прикладной код. Моя QtCore.dll весит 2,1 Мб. Утоптать ее наверное можно, вот только какая выгода? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nanorobot 3 2 июля, 2015 Опубликовано 2 июля, 2015 (изменено) · Жалоба 200 МГц, 1 Мб ПЗУ и 136 кб ОЗУ - ну хз, сильно зависит, сколько сожрет прикладной код. Моя QtCore.dll весит 2,1 Мб. Утоптать ее наверное можно, вот только какая выгода? Параметры процессора мне известны. Неизвестна "жирность" по отношению к гипотетическому КуТэ без линуха... Изменено 2 июля, 2015 пользователем nanorobot Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Johnny81 0 2 июля, 2015 Опубликовано 2 июля, 2015 · Жалоба Параметры процессора мне известны. Неизвестна "жирнрсть" по отношению к гипотетическому КуТэ без линуха... ИМХО, для Qt тут ресурсов маловато. Хотя возможно я ошибаюсь. Экспериментируйте :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
den_po 0 3 июля, 2015 Опубликовано 3 июля, 2015 · Жалоба Или можно посмотреть на буст, там есть нечто похожее - signals2, который (насколько я помню) компиляции не требует. Или можно посмотреть на реализации, использующие FastDelegate, например https://github.com/pbhogan/Signals Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
miheyk 0 3 июля, 2015 Опубликовано 3 июля, 2015 · Жалоба Без ОС Qt вам не собрать, потому что это фреймворк над системными интерфейсами. Как вариант можно портировать под uClinux 4ую версию Qt, но потребуется немало времени для подбора оптимальных настроек и поиска патчей под Thumb2. На lpc1788 где-то месяц потратил на порт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Johnny81 0 3 июля, 2015 Опубликовано 3 июля, 2015 · Жалоба Без ОС Qt вам не собрать, потому что это фреймворк над системными интерфейсами. Думаю собрать, но напильником придется поработать, отключая лишнее. Собственно многие вещи там к системе никак не относятся - те же сигналы/слоты к примеру Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
miheyk 0 3 июля, 2015 Опубликовано 3 июля, 2015 · Жалоба Можно многое напильником сделать, но оправдает ли задачу потраченное время... К слову скажу, что без поддержки тредов Qt4 и тем более 5 не собрать. ОС хотя б это предлагает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Johnny81 0 3 июля, 2015 Опубликовано 3 июля, 2015 · Жалоба Можно многое напильником сделать, но оправдает ли задачу потраченное время... Я бы не стал, но в принципе то :) Собственно для проца ТС-а все это вообще непонятно зачем надо. К слову скажу, что без поддержки тредов Qt4 и тем более 5 не собрать. ОС хотя б это предлагает. Думаю зависит от степени владения напильником. По крайней мере qtCore наверное собрать можно и что-то даже работать будет. Самый простой вариант - просто заменить все связанное с потоками на заглушки. Или какой-то базовый функционал строго завязан на наличие фоновых потоков? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
miheyk 0 3 июля, 2015 Опубликовано 3 июля, 2015 · Жалоба Как минимум придется пилить атомарный доступ, спинлоки. Вопрос уже поднимался. Особенно сильно на потоки завязаны QtWidgets. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Slash 0 6 июля, 2015 Опубликовано 6 июля, 2015 (изменено) · Жалоба Вроде бы используя ОС EmBox http://se.math.spbu.ru/SE/embox можно запускать на МК приложения, написанные на Qt. Еще вариант, с помощью компилятора Clang можно заменить moc http://woboq.com/blog/moc-with-clang.html Сколько труда нужно вложить, чтобы для МК получить сигналы/слоты - даже не представляю ( в этом варианте, без сторонних библиотек). Изменено 6 июля, 2015 пользователем Slash Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
miheyk 0 6 июля, 2015 Опубликовано 6 июля, 2015 · Жалоба Механизм сигналов/слотов можно в некоторой степени заменить мьютексами средствами RTOS. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nanorobot 3 9 июля, 2015 Опубликовано 9 июля, 2015 · Жалоба Механизм сигналов/слотов можно в некоторой степени заменить мьютексами средствами RTOS. Вероятно Вы хотели сказать - семафорами? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться