Кросс-компиляторы, сборка проекта под x86-64 и ARM, и собственно разработка под множество платформ?
Возникла идея проекта, и все вроде как хорошо, ресерч завершился более менее успешно и вроде как стоит уже приступать к реализации, но не тут то было.
У меня нету вообще опыта разработки кросплатформенного софта (какие-то простенькие программы на qt не всчет), так что я даже не знаю с чего начать.
Сама программа представляет собой ядро для других программ. По сути это отдельный процесс-демон, выполняющий какую-то работу. Никакого gui. Несколько модулей должны производить довольно много вычислений, так что тут уж ничего не поделать, придется писать для того же arm отдельно платформозависимый код (opencl не поддерживается на андроидах). Так же нужна поддержка автоматической векторизации вычислений. Поскольку проект создается интереса ради, покупать лицензию на intel parallel studio как-то не особо хочется. А из бесплатных это либо gcc либо clang (у которого все плохо с windows и нету поддержки neon).
cmake - удобно, но есть насколько я помню сложности с настройкой кастомного компилятора для windows (хотя может и visual studio подойдет, с версии 2011+ вроде как компилятор vs поддерживает автоматическую векторизацию, но не знаю есть ли это дело в express редакции), все же хотелось бы использовать gcc. Да и честно я пока слабо представляю как это все настраивать, как потом работать с инкрементными билдами, как билдить библиотеки дополнительные, разделять на модули и т.д.
В идеале было бы неплохо найти небольшой по объему кодовой базы проект, который поддерживает архитектуры arm и x86-64 (операционные системы необходимые на данный момент - windows, windows phone, linux, android). Опять же если у кого есть опыт, подскажите какой workdflow должен быть на подобных проектах, какие моменты сложнее всего, и какие можно решить.
Программист, математик, задрот и даже чуть инженер
Express - это IDE. Ничего общего с утилитами сборки она не имеет.
В идеале - Вы сами назвали - Qt. Дабы не сильно париться, могу подсказать интересный трюк для параллельных вычислений - считайте всё в шейдере, запихав информацию в текстуры. А потом из этих же текстур вытаскивайте результат. Это самый кроссплатформеный способ.
Ну, или придётся писать немного платформозависемого кода. Алсо
Visual Studio имеет на борту свой компилятор, и для редакции Express там не мало ограничений, посему и спрашивал. Сейчас уже понимаю что глупость писал, опыта небыло.
По поводу OpenCL - да, я уже его использую, но пока только в порядке ресерча. Qt использую для UI и тольк для оного, логику стараюсь по возможности максимально отвазять от такого рода зависимостей и стараюсь обходиться STL Последние пару дней пишу код в jetBrans CLeon. Сборку с кросскомпиляцией настроил внутри docker контейнера.
@Fesor sehr gut, по поводу STL - оч зря. Qt - кроссплатформенный, тогда как STL - не совсем. Ну, то есть разница там не сильно значительная, а в плане API - Qt-шные контейнеры так и почти целиком совместимы, однако в плане реализации где-то читал про то, что Qt - лучше. Тем более, GUI использует Qt-шные контейнеры.