Мне необходимо скомпилировать и запустить простейший код на C++ под ARM. Пытаюсь сделать:
$arm-none-eabi-g++ -mthumb -mcpu=cortex-m3 -static --specs=nosys.specs test.cpp
На выходе получаю файл:
$file a.out
a.out: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, not stripped
При запуске:
$qemu-arm -cpu cortex-m3 a.out
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
Ошибка сегментирования (core dumped)
В чем моя ошибка? Запуск производится на Fedora.
Код:
#include <iostream>
int main()
{
std::cout << "Hello World!" << std::endl;
return 0;
}
Решение:
$ arm-none-eabi-g++ -mthumb -mcpu=cortex-m3 --specs=rdimon.specs -Wl,--start-group -lgcc -lc -lm -lrdimon -Wl,--end-group -o test test.cpp
Запуск:
$ qemu-arm -cpu cortex-m3 ./test
Вывод:
Hello World!
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости