Ну если все работало на Arduino Uno, то непонятно, зачем вообще было с него переходить. Если габариты платы не устраивают, есть еще Arduino Pro Micro и прочие небольших размеров.
В целом я с замечаниями согласен, статью можно было бы получше оформить, как минимум. Если целью перехода было - просто освоение STM32, об этом тоже стоило бы написать.
Там пакрафт был просто двухместный, у него длина такая, что прекрасно и не складной велик помещается. Насчет "посмотреть больше красот" - кому-то наоборот, хочется, чтобы красоты не так быстро мимо пролетали.
Я сплавлялся разок на байдарке - все хорошо, но процесс сборки долгий и сложный по сравнению с пакрафтом, а про ее вес я вообще молчу, тащить ее на себе было то еще удовольствие.
Раз пакрафты существуют, значит, они кому-то нужны?
Так ли всем нужна скорость? Одно дело - соревнования, а если это все - просто ради прогулок и отдыха? Видел видеоролики, в которых человек едет на велике по области с пакрафтом, потом доезжает до речки, надувает пакрафт и в него прямо с великом погружается и плывет. С байдаркой такое вряд ли прокатит, кмк. Она еще и менее устойчива, да и узкая.
И с каждой библиотекой приходится танцы с бубном устраивать, чтобы понять, что именно надо включить в CMakeLists.txt, чтобы библиотека подшилась. К сожалению, файл вроде usage есть далеко не для всех библиотек.
А еще, если библиотека не header only, она под Windows статически обычно не подшивается. Конкретно для PNG после сборки рядом с EXE-файлом ещё оказываются libpng16.dll и zlib1.dll - не подскажете, как добиться того, чтобы они статически прилинковались в исполняемый файл?
Вопрос у меня был, в основном, про эти два момента:
target_include_directories(${PROJECT_NAME} PUBLIC ${GLEW_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} SDL3-static)
Как, в общем случае, догадаться при подключении сторонних библиотек, что нужно подставить в качестве ${GLEW_INCLUDE_DIRS} в target_include_directories и SDL3-static в target_link_libraries? Иногда приходится кучи вариантов чуть ли не наугад перебирать, если в README ничего не написано, либо что-то написано, но не работает.
У каких-то библиотек есть файл .cmake, у каких-то нет, и вообще возможны самые разные варианты.
Надо сразу взять Xilinx Spartan и реализовать на нём всё, как создатели ZX Spectrum Next сделали :-) Правда, из-за дороговизны и дефицита в последних реализациях они на другой FPGA перешли.
<library_target> - это цель, которую создала библиотека. Её можно найти в примерах использования библиотеки, в README.md (там вообще можно много найти) или в CMakeLists.txt. В последнем случае надо искать строки вида add_library(<library_target> ...).
Есть ли где-нибудь набор полезных советов на эту тему?
Не раз уже сталкивался с ситуациями, что то, что надо указать в качестве library_target, почему-то не соответствует тому, что приводится в readme (возможно, там информация просто устаревшая), и приходится гуглить, как именно подключить библиотеку в CMakeLists.txt. И даже это не всегда помогает - зачастую находятся советы и примеры использования только 10-летней давности, которые уже не работают.
Причем, бывает, что под Linux всё собирается, а под Windows в MSVC нет.
Умная розетка не помогла бы? :)
Я-то думал, ретро - это ZX Spectrum или Commodore 64.
А в целом это все зачем? Дистанционно это делать, типа радио-пульта ДУ?
В общем, хотелось бы автора услышать.
Ну если все работало на Arduino Uno, то непонятно, зачем вообще было с него переходить. Если габариты платы не устраивают, есть еще Arduino Pro Micro и прочие небольших размеров.
В целом я с замечаниями согласен, статью можно было бы получше оформить, как минимум. Если целью перехода было - просто освоение STM32, об этом тоже стоило бы написать.
А в чем отличия?
Можно подробнее про решаемую задачу? Что эта связка должна делать?
Для начинающих, кто думает о переходе с Arduino Uno на STM32, вполне годная статья, кмк.
Другое дело, что я, например, не понял постановку задачи. Что за передатчик, приемник, и что оно все вместе должно делать?
Там пакрафт был просто двухместный, у него длина такая, что прекрасно и не складной велик помещается. Насчет "посмотреть больше красот" - кому-то наоборот, хочется, чтобы красоты не так быстро мимо пролетали.
Я сплавлялся разок на байдарке - все хорошо, но процесс сборки долгий и сложный по сравнению с пакрафтом, а про ее вес я вообще молчу, тащить ее на себе было то еще удовольствие.
Про Волгу и ветер понятно.
Дети игрались.
Раз пакрафты существуют, значит, они кому-то нужны?
Так ли всем нужна скорость? Одно дело - соревнования, а если это все - просто ради прогулок и отдыха? Видел видеоролики, в которых человек едет на велике по области с пакрафтом, потом доезжает до речки, надувает пакрафт и в него прямо с великом погружается и плывет. С байдаркой такое вряд ли прокатит, кмк. Она еще и менее устойчива, да и узкая.
А почему не пакрафт?
Разве тема сканирования кинопленок не была закрыта уже лет 20 назад?
Что-то я ничего ни в одном из каментов не понял :)
Понял. Собственно, после установки libpng с помощью vcpkg имеется файл usage:
installed\x64-windows-static\share\libpng\usage
И в нем написано, как подшивать библиотеку в CMakeLists.txt:
Здесь вместо main лучше подставить ${PROJECT_NAME}
Но под Windows надо ещё догадаться, что нужны ещё вот такие строки:
И с каждой библиотекой приходится танцы с бубном устраивать, чтобы понять, что именно надо включить в CMakeLists.txt, чтобы библиотека подшилась. К сожалению, файл вроде usage есть далеко не для всех библиотек.
А еще, если библиотека не header only, она под Windows статически обычно не подшивается. Конкретно для PNG после сборки рядом с EXE-файлом ещё оказываются libpng16.dll и zlib1.dll - не подскажете, как добиться того, чтобы они статически прилинковались в исполняемый файл?
glob вполне хорош, но надо хорошо понимать, какие последствия могут вылезти в определенных случаях. И, что плохо, вылезти они могут далеко не сразу.
Спасибо. Про совет 3 можно подробнее - что имеется ввиду?
Вопрос у меня был, в основном, про эти два момента:
Как, в общем случае, догадаться при подключении сторонних библиотек, что нужно подставить в качестве ${GLEW_INCLUDE_DIRS} в target_include_directories и SDL3-static в target_link_libraries? Иногда приходится кучи вариантов чуть ли не наугад перебирать, если в README ничего не написано, либо что-то написано, но не работает.
У каких-то библиотек есть файл .cmake, у каких-то нет, и вообще возможны самые разные варианты.
Для тех, кому это действительно интересно, оно и сейчас вполне актуально.
Надо сразу взять Xilinx Spartan и реализовать на нём всё, как создатели ZX Spectrum Next сделали :-) Правда, из-за дороговизны и дефицита в последних реализациях они на другой FPGA перешли.
Есть ли где-нибудь набор полезных советов на эту тему?
Не раз уже сталкивался с ситуациями, что то, что надо указать в качестве library_target, почему-то не соответствует тому, что приводится в readme (возможно, там информация просто устаревшая), и приходится гуглить, как именно подключить библиотеку в CMakeLists.txt. И даже это не всегда помогает - зачастую находятся советы и примеры использования только 10-летней давности, которые уже не работают.
Причем, бывает, что под Linux всё собирается, а под Windows в MSVC нет.