Задать вопрос
  • Надо ли выгружать файл базы данных на гитхаб?

    @res2001
    Обычно как часть проекта делают некий скрипт(ы) для создания пустой базы данных и их уже можно хранить в гите. В процедуру установки/настройки приложения надо включить описание создания базы данных с помощью скриптов.
    Как вариант - встроить функционал по созданию пустой БД в приложение.
    Написано
  • Как можно ограничить скорость интернета для каждого клиента отдельно в openvpn?

    @res2001
    К OpenVPN это не имеет отношения. Это делается через Queueing Disciplines, которые реализованы в ядре ОС.
    Почитайте про Traffic Control в линуксе.
    LARTC например: https://lartc.org/howto/
    Документ есть на русском. Не смотрите, что документ старый, там все актуально, разве что типов дисциплин стало больше, чем описывается. Но тут уже можно будет маны подключить, если интересно.
    Написано
  • Подключение/отключение устройств при импорте/экспорте виртуальных машин Virtualbox?

    @res2001
    tests12345,
    а в чём преимущество

    Преимущество в том, что файл с диском всегда лежит в каталоге с ВМ, никаких дополнительных действий делать не нужно. Но они понадобятся уже на новом хосте - надо создать новую виртуалку.
    Это может быть полезно, если у вас упал сам хост и надо восстановить виртуалку с диска - просто вытаскиваете файл и цепляете его к новой виртуалке.
    Написано
  • Подключение/отключение устройств при импорте/экспорте виртуальных машин Virtualbox?

    @res2001
    tests12345,
    Или тут подводные камни?

    Этим я хотел показать, что конфигурация в случае типовой настройки ВМ вообще мало значима, подойдет почти любая другая типовая конфигурация. Достаточно только перенести файл вирт.диска.

    Подводные камни из того что сейчас в голову пришло:
    1. Можно выбрать EFI, если в старой конфигурации этого нет, а в новой есть то ВМ не поднимется.
    2. Возможно еще без TPM 2.0 Вин11 в ВМ не поднимется.

    Так то физический диск с виндой можно легко переставить на другой комп с другой конфигурацией и то же должен подняться если новая конфигурация соответствует общим требованиям Вин11. С линуксом примерно так же.
    Написано
  • Подключение/отключение устройств при импорте/экспорте виртуальных машин Virtualbox?

    @res2001
    tests12345, Дополнения, это драйвера для виртуальных устройств, тот функционал что ты перечислил - это лишь дополнительные плюшки, которые становятся возможны, когда работают правильные драйвера. Дополнения ставь всегда, если это возможно.
    Ограничений не накладывает. Разве что, на новом месте у тебя будет более свежая версия VB и он захочет их обновить.
    А мне казалось, что проще засунуть вообще всю виртуальную в ova (не только диск) и потом восстанавливать бэкап оттуда, особенно для новичков и особенно когда это надо делать пару раз в неделю.

    Я не настаиваю :-) Это для общего развития.
    Написано
  • Подключение/отключение устройств при импорте/экспорте виртуальных машин Virtualbox?

    @res2001
    tests12345,
    Кстати, хороший вопрос.

    Если бы ты пробрасывал в виртуальную машину реальные устройства, то ты бы это знал, т.к. это отдельный процесс, в типичную конфигурацию по умолчанию, где задаешь только количество процов, размер ОЗУ и диска это не входит.
    Так что по умолчанию устройства виртуальные.
    В такой конфигурации вообще можно перетащить только файл жесткого диска на новый комп и создать виртуалку с нуля с такой же или немного другой конфигурацией, но диск не создавать новый, а подключить старый файл, который перенес. И все должно заработать.
    ОЗУ и процессор, кстати, в виртуалке вполне реальные используются. Но все остальное - эмулируется. Правда реальное ОЗУ, как известно, давно уже виртуальное даже в хостовой системе.
    Написано
  • Где можно скачать Qt 5.5.1 под Ubuntu?

    @res2001
    Артем,
    А тута

    Подобная возможность есть обычно в любых системах сборки. Просто указываешь какой компилятор использовать. Правда обычно задают префикс компилятора (в твоем примере arm-linux-gnueabihf-) а остальное подставляется системой сборки.
    К компилятору еще нужны заголовки ядра линукс правильной версии, используемый в целевой системе libc. Это такие основные моменты. Но обычно это уже есть в составе компилятора собранного под целевую платформу.
    Написано
  • Что будет, если не удалять графические объекты при завершении программы в C++ SDL2?

    @res2001
    Ланской Кирилл, Не надеятся.
    Я ж говорю - исправлять.

    Если это не намеренная ошибка, а в программировании никто не застрахован от ошибок и это регулярно случается со всеми. То ошибка рано или поздно даст о себе знать, если на тестах - хорошо, если у пользователей - плохо, но обычно не страшно. Воспроизводите, локализуете, исправляете. Все.

    Если же вы намеренно не освобождаете ресурсы надеясь на ОСь - ну это в целом ваше персональное дело. Если этот подход пока у вас прокатывает - ну ладно. Вас же никто не может заставить писать delete на каждый new в конце концов. Как напишите программу, так она и работать будет. Но может настать час, когда вам же этот подход как-то вылезет боком. Ну тогда просто в данном конкретном месте освободите и может быть и дальше все буде ОК.

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

    Лично я всегда все освобождаю.
    Написано
  • Что будет, если не удалять графические объекты при завершении программы в C++ SDL2?

    @res2001
    Ланской Кирилл, Исправите.
    Как говорит нынешний мин.обороны "Ошибаться можно, врать нельзя" :-)
    Написано
  • Где можно скачать Qt 5.5.1 под Ubuntu?

    @res2001
    Артем,
    Ну и в целом, если ты можешь собрать окружение снова для сборки под устройство, значит ты знаешь всё необходимое.

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

    С этим есть проблема версионности. Т.к. далеко не все библиотеки обратно совместимы со старыми версиями (тот же Qt) и т.д. и т.п.
    Поэтому в эмбедед достаточно редко обновляют окружение (ОС и основные библиотеки), т.к. это часто требует большой работы по адаптации собственного кода к новым версиям окружения.
    Написано
  • Где можно скачать Qt 5.5.1 под Ubuntu?

    @res2001
    Артем,
    узнал, действительно у нас собственная сборка линукса под наше устройство

    Добро пожаловать в эмбедеры :-)

    Часто бывает, что разработчики железок с линуксом на борту для себя в отладочных целях делают сборку виртуальных машин с окружением, тем же, что будет на борту.
    Так что можно использовать для отладки приложения такую виртуалку, а не железку. Если такой подход у вас практикуется.
    Написано
  • Где можно скачать Qt 5.5.1 под Ubuntu?

    @res2001
    Артем, Ну значит там у вас уже скорее всего есть разработанная система сборки и они просто туда добавят еще и сборку Qt подходящей версии или она уже там есть.

    Соответственно узнайте у людей причастных, какая версия ядра линукс используется в вашей сборке. И если приложение не будет каким-то специфическим, которое нельзя будет запустить на произвольном железе, то можете разрабатывать его на Убунту подходящей версии. Можете поставить ее в виртуалку или нативно, в убунту с помощью стандартного менеджера пакетов установите Qt5 и будете использовать его.

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

    Кросс-компилятор собирается вместе с ядром линукс, точнее даже раньше, т.к. и само ядро и libc и все остальное собираются им же.
    Написано
  • Где можно скачать Qt 5.5.1 под Ubuntu?

    @res2001
    Артем,
    неправильно выразился. Мне билд Qt нужен не под ARM, он нужен под x64, просто чтобы внутри него были либы для сборки проекта под ARM))) уфф, ох уж это формулирование....

    Нет. Билд вам нужен под АРМ, потому что билд не под АРМ не будет работать на АРМ и в нем не будет либ для АРМ.
    В общем, общие принципы расписал выше. Может быть несколько подходов.
    Это ваш личный проект?
    Написано
  • Где можно скачать Qt 5.5.1 под Ubuntu?

    @res2001
    Артем, Для начала вам нужен билд ОС для вашего устройства, т.к. Qt не работает без ОС.
    Что за ОС? Видимо какой-то линукс. Какой?

    Если это самостоятельная сборка линукса, то и Qt вам надо собирать самостоятельно по тем же принципам, что собираете и ОС тем же компилятором с использованием той же libc и т.п.
    Если это какой-то готовый дистрибутив, то ищите Qt в репах этого дистрибутива. Если в репах нет - собирайте тем кросс-компилятором, который предоставляет производитель дистра. Или собирайте Qt нативным компилятором прям на борту.

    Не стоит тянуть готовую сборку Qt из Ubuntы любой версии в целевую платформу, т.к. там может оказаться другое окружение (другая версия libc, другая версия ядра, какие-то еще вещи от которых зависит Qt могут быть другими) и этот Qt просто не заработает на вашей целевой системе.

    Но возможно вопрос в другом. Qt библиотека кросс платформенная и если вы будете разрабатывать кросс платформенное приложение, то его в принципе можно писать и отлаживать почти в произвольной системе. Для простоты вам можно выбрать какую-то версию убунты на примерно той же версии ядра, что и ваша целевая платформа (не обязательно точное совпадение), там почти наверняка будет и Qt подходящей версии. Спокойно писать и отлаживать приложение в убунте, а затем просто пересобрать ваше готовое приложение для целевой платформы.
    Написано
  • Почему редактор ругается на вынесенную функцию?

    @res2001
    Вообще обычно cpp файлы не используют в #include.
    Бывают исключения, но крайне редкие и там разрабы наверное знают что делают, впрочем это не значит, что это правильный вариант. Но, возможно, самый простой в их случае.

    В файлах заголовоков обычно пишут как раз форвардные объявления экспортируемых функций (помимо типов, макросов и т.п.).
    Поэтому правильный вариант был бы: создать файл func.h, в нем написать форвардное объявление функции и затем включить его в main.cpp в include. При этом при компиляции надо будет указывать оба файла в опциях компилятору: g++ main.cpp func.cpp

    Выше описан стандартный правильный подход для работы в проекте, где исходников больше чем 1 файл, практически всегда надо использовать такой подход.

    Еще один вариант сделать чтоб программа собралась, но при этом ничего не изменять в исходниках вообще - не указывать func.cpp при сборке компилятору: g++ main.cpp
    Это сработает в вашем случае, т.к. #include "func.cpp" уже включает содержимое func.cpp в main.cpp, компилятору этого достаточно для сборки.

    Ошибка у вас была явна не то что вы пишете:
    выдает ошибку о многобайтовом использовании символа.

    Она видимо звучала как многократное (или множественное) определение символа.
    В следующий раз приводите здесь оригинальный текст ошибки - просто скопируйте то что вам выдал компилятор - всем будет проще.
    Написано
  • Где можно скачать Qt 5.5.1 под Ubuntu?

    @res2001
    Артем, Какая у вас целевая платформа? Ubuntu для arm? Какая версия?
    Вот та же ссылка на пакет для арма: https://launchpad.net/ubuntu/xenial/arm64/qtbase5-...

    Но если у вас есть работающий целевой линукс, вы просто можете используя родной пакетный менеджер установить Qt, который есть в репах вашего дистра. Как правило Qt есть в любых репозиториях основных дистрибутивов.

    Qt вполне может быть не обратно совместим. Помню сам столкнулся с этим, когда мажорная версия у него поменялась с 4 на 5. Пришлось кое-что по мелочи править в своем проекте.
    Написано
  • Почему трясётся виджет во время перемещения мышью?

    @res2001
    Kirgus, По моему (и с точки зрения винды) это все окна с разными свойствами, так же как ваш Rectangle и любой виджет. Окно не обязано быть с заголовком и системным меню. Все элементы управления на форме - то же окна и т.п.
    Написано
  • Почему трясётся виджет во время перемещения мышью?

    @res2001
    Kirgus,
    а родительского окна у меня нет

    А кто такой canvas? И как этот canvas связан с MainWindow?
    Figure *figure1 = new Rectangle(100, 20, 200, 100, canvas);

    У вас тут уже вырисовывается иерархия из окон :)
    Написано
  • Почему трясётся виджет во время перемещения мышью?

    @res2001
    Kirgus, Это легко проверяется - запустите под отладчиком, точку останова на Figure::mouseMoveEvent и посмотрите что лежит в pos и figurePos и соответствует ли (примерно) оно тому, что вы предполагаете там должно быть.
    Написано
  • Почему трясётся виджет во время перемещения мышью?

    @res2001
    Kirgus, Нет, я хочу сказать, что: 1) координаты окна могут измерятся вообще не в пикселях 2) координаты окна измеряются относительно родительского окна 3) координаты мыши, видимо, измеряются относительно всего экрана в пикселях.
    Но это предположение. Впрочем вполне вероятное.
    Я уже давно не писал GUI, но когда-то было дело, и мне приходилось задавать координатную шкалу для окон. Правда это был не Qt. Но по моему, даже на голом WinAPI это возможно.
    Написано