Pull to refresh

Comments 21

Но почему qmake, а не cmake, например?
В сети немало готовых скелетов для ардуино на cmake.
А конфигураторы проектов cmake поддерживаются чуть ли не всеми IDE.

qmake — родная система сборки для Qt Creator (наряду с Qbs). Qt Creator поддерживает и систему cmake, собирает проекты на её основе. Но там есть проблемы с добавление файлов в проект через IDE. В статье акцент смещен на выбор IDE, а не выбор системы сборки.

Есть и ряд субъективных причин. Мне нравится cmake, но по моему мнению она достаточно многословна, но повторюсь это очень субъективно. Плюс из вменяемых IDE использующих cmake: CLion за деньги, Netbeans больше заточен под java, Eclipse не предлагать.

Так что да, выбор обусловлен личной привязанность к Qt Creator
Не могли бы Вы подробнее объяснить неприятие Eclipse, давно ей широко пользуюсь, в том числе и для C/C++, и из существенных недостатков могу назвать только отсутствие поддержки синтаксиса C++14 и свежее. Так сказать, раскройте мне глаза, может, действительно засиделся я на ней и пора мигрировать на что-то еще. В Qt Creator немного поработал — после Eclipse непривычно, а привычка хоть и дело наживное, но требует времени. Хочется понять — стоит ли игра свеч.

Личное мнение по поводу Arduino: пока программу называют скетчем, никакая IDE не поможет перейти от «скетчестроения» к нормальному программированию.
Не могли бы Вы подробнее объяснить неприятие Eclipse

Могу. Среда функционально мощная, но с гадко спроектированным, не очевидным UI. К тому же разработана на java, откуда проистекают неприятные фризы при её работе. Qt Creator для C намного более приятен. Неоспоримый плюс эклипс — это комбайн, который можно настроить под что угодно, в отличие от creator'а, заточенного исключительно под C/C++.

Среда функционально мощная, но с гадко спроектированным, не очевидным UI.

С UI у меня как раз претензий нет, тут по-моему как раз QT Creator хуже. Впрочем возможно только из-за моей привычки к эклипсу. Претензии у меня в том, что начиная с 4-й ветки, эклипс становится с каждым выпуском всё хуже. Растёт потребление памяти, всё больше тормозит и т.п. Вобщем под эклипсом я если не с самого его начала, то уж со второй ветки это точно. Причем не только пользуюсь, но и пишу для него плагины. Но последнее время усиленно гляжу по сторонам, куда бы с него сбежать. Увы, бежать пока особо некуда. Сейчас например ваяю проектик на верилоге. Выяснилось, что из свободных редакторов для него тоже нет ничего лучшего, чем SVEditor под эклипс. Да, он тоже достаточно безобразен. Но всё остальное ещё хуже.
Разделяю вашу симпатию к Qt Creator и умеренно — к ардуинам, хотя часто это самый простой и быстрый наваять какую-нибудь поделку. Спасибо за материал!

Вот ещё тема для будущих заметок: сборка для Arduino Leonardo и их производных, у которых на борту atmega32u4. Там с проектом ещё надо хитро слинковать кусок usb-загрузчика (искать Caterina bootloader), который у них не влез в область загрузчика и без которого плату будет проблемно перепрошить.
и умеренно — к ардуинам,

Умеренно — хорошее слово, выражающая и моё отношение. По роду деятельности я не эмбеддер, но приходится вникать в техпроцесс команды электронщиков, которым часто не хватает времени на поддержку наших совместных проектов. А они для прототипирования используют Arduino, отсюда проистекает и мой интерес к данной теме
У Qt Creator'а хорошая система плагинов, неужели никто не написал плагин для C/C++ эмбеддед-проектов и Arduino в частности?
Расскажите как настроить в такой связке нормальный дебаггер. Хотелось бы получить обычных брейкпоинтов и возможности оглядеться вокруг. Без этого мы приходим к обычному дебагу принтами.
Нормальную отладку с эмулятором настроить очень легко, и об этом я напишу. Что касается отладки внутрисхемной, тут есть сложности
Ну я в своё время под саблайм внутрисхемную настраивал (STM32 правда), не думаю, что проблемы будут.
автор, а что на GTK ничего нет? мне для того, чтобы попробовать ваш пример нужно пол KDE установить… хотелось бы примеров на GTK+ 3.22.
Попытался выполнить это под Windows.
Получил ошибку
14:23:12: Запускается: «C:\Qt\Qt5.9.1\Tools\mingw530_32\bin\mingw32-make.exe»
C:/Qt/Qt5.9.1/Tools/mingw530_32/bin/mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory 'Z:/Coding/qt/arduino_template'
r:/Programs/arduino-1.8.2/hardware/tools/avr/bin/avr-gcc.exe -c -fno-keep-inline-dllexport -pipe -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -O2 -Wextra -Wall -W -DUNICODE -DQT_NEEDS_QMAIN -I. -Isrc -Ir:\Programs\arduino-1.8.2\hardware\arduino\avr\cores\arduino -Ir:\Programs\arduino-1.8.2\hardware\arduino\avr\variants\standard -Ir:\Programs\arduino-1.8.2\hardware\arduino\avr\libraries -I/usr/avr/include -IC:\Qt\Qt5.9.1\5.9.1\mingw53_32\mkspecs\win32-g++ -o release\hooks.o r:\Programs\arduino-1.8.2\hardware\arduino\avr\cores\arduino\hooks.c
avr-gcc.exe: error: command line option '-fno-keep-inline-dllexport' is not supported by this configuration


И по-моему вы пропустили этап
Рабочий комплект оставляем по-умолчанию, поправим это потом

Не увидел, как его настраивать.
В pro прописан CONFIG -= qt, компилятор и компановщик. Поэтому комплект неважно какой. По аналогичной схеме пользую креатор для простых безкьютных десктопных поделок под Linux. При отладке пользуешься всеми кьютными плюшками (типа qDebug().niquote() << QByteArray::fromRawDate().toHex()), а в релизе CONFIG -= qt )))
С комплектом понятно.
А откуда компилятор у меня добавляет опции -c -fno-keep-inline-dllexport -pipe?
Я эти опции вижу только в *.conf файлах самой Qt
В проекте CONFIG -= qt присутствует

Кстати у меня еще и предупреждение выходит
:-1: предупреждение: «r:\Programs\arduino-1.8.2\hardware\tools\avr\bin\avr-gcc.exe» используется qmake, но «C:\Qt\Qt5.9.1\Tools\mingw530_32\bin\gcc.exe» задан в комплекте.
Обновите комплект или выберите подходящей для вашей целевой платформы mkspec для qmake.
Так что я думаю комплект как раз важен.
Кто-нибудь подскажет, как это исправить?

Насчет предупреждения, попробуйте добавить avr-gcc.exe в компиляторы и поменять компилятор в профиле qt. (Параметры->сборка и запуск->компиляторы / профили Qt)
Всё несколько сложнее. Я сам столкнулся с рядом проблем под тем же линуксом, в попытках собрать релизную версию. Тут, очевидно, придется копнуть глубже и добавить конфигурацию в mkspec
Если не трудно, напишите, как вы настраивали рабочий комплект под linux?
в .pro для с++ QMAKE_CXXFLAGS += «всякие разные флаги», для с QMAKE_CFLAGS += "...", для линкера QMAKE_LFLAGS += "..."
Only those users with full accounts are able to leave comments. Log in, please.