Форум программистов, компьютерный форум, киберфорум
Кроссплатфор­менная разработка
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
 Аватар для peter_irich
364 / 218 / 53
Регистрация: 18.10.2017
Сообщений: 2,350

Как делается кросс-платформенная разработка в Linux?

22.12.2024, 21:46. Показов 6490. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Когда-то давно я это делал в Debian на уже настроенной другим человеком системе, а как к этому приступить с нуля, например, для процессоров ARM?
Какой при этом используется компилятор, надо ли скачивать newlib откуда-то с redhat.com или сейчас это как-то иначе?
Есть какая-нибудь инструкция для организации процесса?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.12.2024, 21:46
Ответы с готовыми решениями:

Кросс-платформенная разработка на Xamarin
Ребят, что думаете по поводу программирования приложения на C# под iOS и Android. Научиться хочу быстро, поэтому скорее всего пойду на...

Марк Прайс, C# 10 и .NET 6. Современная кросс-платформенная разработка
Ищу литературу на русском языке, для новичка. Как думаете, подойдёт ли эта книга? C# 10 и .NET 6. Современная кросс-платформенная...

Понятие кросс-платформенная
Мультимедийная библиотека SDL, написано что она кросс-платформенная https://www.libsdl.org/ Вопрос: Раз она кросс-платформенная то почему...

10
524 / 512 / 129
Регистрация: 31.10.2016
Сообщений: 4,156
22.12.2024, 22:39
Нужно установить и настроить SDK для целевой системы, там будет свой компилятор, которым и нужно компилировать код. Одно время я делал такое для OpenWrt, это такой микро линукс для встраваемых систем.
0
 Аватар для peter_irich
364 / 218 / 53
Регистрация: 18.10.2017
Сообщений: 2,350
22.12.2024, 22:51  [ТС]
Благодарю за ответ, а этот SDK искать на сайте процессора, для которого предполагается писать программы? Или как-то иначе?
0
524 / 512 / 129
Регистрация: 31.10.2016
Сообщений: 4,156
22.12.2024, 23:32
для OpenWrt я качал отсюда https://downloads.openwrt.org/releases/
там нужно выбрать релиз, который поддерживает Ваше железо, потом в раздела targets выбираете архитектуру, гдето там в конце будет архив, его и нужно скачать. У меня назывался openwrt-sdk-21.02.2-ramips-mt76x8_gcc-8.4.0_musl.Linux-x86_64.tar.xz
если всё получится - исходники компилируются также как и в gcc, только компилятор называется по другому,
у меня например вот так компилируется:
$ mipsel-openwrt-linux-gcc -o hello hello.c
потом просто копируете исполняемый файл в устройство и всё

Но, при таком способе может не найтись всех необходимых библиотек и драйверов.

Есть и другой путь - клонировать все репозитории целевой платформы, потом собрать инструментарий и тулчейн. Там будет всё что нужно, и в результате получится ни какой то исполняемый файл, а нормальный установочный пакет. Но это намного сложнее, нужно правильно расположить исходники и главное, правильно написать Makefile.
Я помню мучился недели 2, но потом всё получилось. В общем нет так то оно и просто.
Для других дистрибутивов Linux наверное всё аналогично, но я не пробовал
0
 Аватар для peter_irich
364 / 218 / 53
Регистрация: 18.10.2017
Сообщений: 2,350
23.12.2024, 08:44  [ТС]
Alexis333, благодарю за подробные разъяснения.
0
9 / 7 / 2
Регистрация: 22.12.2024
Сообщений: 31
24.12.2024, 09:15
Если вы планируете разработку под "голое железо" (bare metal) на arm, то в современных дистрибутивах обычно уже есть пакеты. Например, у меня в void-linux:

Code
1
[*] cross-arm-none-eabi-binutils-2.32_2         GNU binary utilities[*] cross-arm-none-eabi-gcc-9.3.0_1             GNU Compiler Collection[*] cross-arm-none-eabi-libstdc++-9.3.0_2       GNU Compiler Collection - Standard C++ Library[*] cross-arm-none-eabi-newlib-3.1.0.20181231_3 C library intended for use on embedded systems

Если используете debian, то список пакетов можно тут найти.
0
 Аватар для peter_irich
364 / 218 / 53
Регистрация: 18.10.2017
Сообщений: 2,350
25.12.2024, 13:37  [ТС]
basiliscos, благодарю засовет, я сейчас именно смотрю описания подобных пакетов я Astra Linux. у меня вопрос состоит в том, какие пакеты с библиотеками надо установить, какой компилятор, например, gcc-arm-none-eabi, как создать Makefile, чтобы подключалось то, что надо.
0
9 / 7 / 2
Регистрация: 22.12.2024
Сообщений: 31
26.12.2024, 12:10
Всё зависит от того, что собираете, под какую архитектуру и т.п.

Лучше `CMake` пользоваться, просто погуглите как hello-word (blinky, мигалка светодиодом) под aarch64, скажем, сделать.
0
 Аватар для peter_irich
364 / 218 / 53
Регистрация: 18.10.2017
Сообщений: 2,350
26.12.2024, 14:32  [ТС]
Ещё вопрос: есть два варината пакетов, с -none-eabi и с -linux-gnueabi. 1-й, как пишут, для bare metal, программирования "по железу", когда программа записывается в процессор (микроконтроллер) в устройстве без операционной системы. Я когда-то имел с этим дело, там всё было уже подготовлено другим человеком, а процессоры были Atmega и AVR. А как работает 2-й вариант? Компилирование всё равно может происходить на компьютере, там же устанаваются компилятор, ассемблер, линковщик, библиотеки? Или компилирование в этом случае должно происходить на целевой плате?

Добавлено через 34 минуты
Или 2-й вариант имитирует компилирование на целевой плате, например, его можно или нужно выполнять в виртуальной машине?
0
9 / 7 / 2
Регистрация: 22.12.2024
Сообщений: 31
26.12.2024, 20:31
Цитата Сообщение от peter_irich Посмотреть сообщение
-linux-gnueabi
эта штука подразумевает наличие линукс-ядра на целевой платформе, и, соответственно, ваш бинарь делает вызовы к ядру.

Цитата Сообщение от peter_irich Посмотреть сообщение
Atmega и AVR.
т.к. линукс-ядра для этих штук нет, то и работать (и скорей всего и собираться) не будет.


Цитата Сообщение от peter_irich Посмотреть сообщение
можно или нужно выполнять в виртуальной машине?
можно, через qemu, например.
0
 Аватар для peter_irich
364 / 218 / 53
Регистрация: 18.10.2017
Сообщений: 2,350
26.12.2024, 21:07  [ТС]
basiliscos, понятно, благодарю за разъяснение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.12.2024, 21:07
Помогаю со студенческими работами здесь

Унифицированная кросс-платформенная библиотека Си
Созрела у меня необходимость иметь набор простых механизмов для написания типовых задач под МК на базе AVR8, STM8S и STM32 Под это дело...

Установка Qt на Linux для кросс-компиляции: Linux 32/64 Windows 32/64
В силу объективных причин пришлось перейти на Linux, но столкнулся с проблемой установки окружения Qt. Нужна установка Qt на Linux Mint для...

Кросс компиляция из под linux
Стоит: mint, wine, codeblocks(win). Хочу: прикрутить под wine к codeblocks компилятор от vs2008. В качестве источников lib, h,...

Кросс компиляция под Win из Linux
Я вроде как собрал qmake для компилятора mingw, собрал библиотеки Qt, но компилировать не получается, выводит ошибку. Знающие люди,...

Qt: кросс-компиляция из windows под linux
День добрый, пытаюсь настроить компилятор qt, чтобы тот мог компилировать под linux на windows. Пусть к компилятору указал к...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru