Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:2
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Отладочные платы » SK-iMX6Q
Исполнение программы
Felix
Добавлено 12.07.2017 14:50 Редактировалось 12.07.2017 14:56
0
Сообщение: 1
Felix
0

Пункты: 1285
Регистрация: 28.09.2016
Подключаюсь через putty к плате, запускаю файловый менеджер (mc), вставляю в usb платы флешку, на которой находится уже скомпилированная (на виртуальной машине) программа, запускаю её и мне на экран вылетает ошибка, прога не замысловатая (создаёт текстовый файл, куда записывается символы), на виртуальной машине пробовал её запускать и она работала. Не понимаю в чём может быть проблема, в линуксе новичок

Ошибка выглядит так:
# ./a.out
./a.out: line 1: syntax error: unexpected "("
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 12.07.2017 16:23 Сообщение: 2
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
./a.out: line 1: syntax error: unexpected "("

что пишет
Код
file a.out


вероятно скомпилили под х86, а надо под АРМ..
https://www.starterkit.ru/html/index.php?name=forum&op=view&id=14321#14459
http://www.starterkit.ru/html/index.php?name=forum&op=view&id=20130#20193

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 12.07.2017 19:33 Редактировалось 12.07.2017 19:34 Сообщение: 3
sasamy
4.71

Пункты: 83540
Регистрация: 14.08.2009
Под какую архитектуру собрана программа можно узнать выполнив в виртуальной машине

file ./a.out

программы для запуска на плате нужно собирать кросс-компилятором из buildroot

buildroot-xxx/output/host/usr/bin/arm-linux-gnueabihf-gcc
Спуститься к концу Подняться к началу
Персональная информация
Felix
Добавлено 17.07.2017 13:17 Редактировалось 17.07.2017 13:22 Сообщение: 4
Felix
0

Пункты: 1285
Регистрация: 28.09.2016
"программы для запуска на плате нужно собирать кросс-компилятором из buildroot

buildroot-xxx/output/host/usr/bin/arm-linux-gnueabihf-gcc"

Не понятна работа с buildroot, как правильно вбивать это в терминал buildroot-xxx/output/host/usr/bin/arm-linux-gnueabihf-gcc, эту запись он не понимает?
Спуститься к концу Подняться к началу
Персональная информация
Felix
Добавлено 17.07.2017 13:24 Сообщение: 5
Felix
0

Пункты: 1285
Регистрация: 28.09.2016
И мне я так понимаю нужно установить предварительно через терминал кросс-компилятор?
Спуститься к концу Подняться к началу
Персональная информация
Konachan
Добавлено 17.07.2017 16:45 Сообщение: 6
Konachan
5

Пункты: 3815
Регистрация: 30.08.2014
Компилятор есть в составе билдрута, ставить не надо. Вот так надо сделать, если для ядра:
Код

cd /home/misaki/devel/a20/softrouter/linux-4.11.6/
export PATH=$PATH:/home/misaki/devel/a20/softrouter/buildroot-2015.08-a20-sk/output/host/opt/ext-toolchain/bin/
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

Только папки поменять на свои.
Ну и для любого приложения с корректным Makefile точно также будет. Для своего приложения в любом случае надо делать Makefile, иначе собирать каждый раз вбивая длинную строку параметров gcc - боль и страдание.
Спуститься к концу Подняться к началу
Персональная информация
Felix
Добавлено 18.07.2017 16:14 Редактировалось 18.07.2017 16:23 Сообщение: 7
Felix
0

Пункты: 1285
Регистрация: 28.09.2016
[quote]Компилятор есть в составе билдрута, ставить не надо. Вот так надо сделать, если для ядра:
Код

cd /home/misaki/devel/a20/softrouter/linux-4.11.6/
export PATH=$PATH:/home/misaki/devel/a20/softrouter/buildroot-2015.08-a20-sk/output/host/opt/ext-toolchain/bin/
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

.[/quote]
Этот путь exportPATH=$PATH:/home/misaki/devel/a20/softrouter/buildroot-2015.08-a20-sk/output/host/opt/ext-toolchain/bin/, указывает я так понял на то где находится Makefile arm-linux-gnueabihf-?
Только вчера познакомился с makefile), поэтому испытываю пока путаницу, можете посоветовать какую нибудь литературу или источники как создавать makefile для кросс-компиляции своих программ?
Виртуалка ubuntu 10.04, которую я использую, не имеет в папке toolchain файла arm-linux-gnueabihf
Спуститься к концу Подняться к началу
Персональная информация
Felix
Добавлено 18.07.2017 16:22 Сообщение: 8
Felix
0

Пункты: 1285
Регистрация: 28.09.2016
В этой виртуалке есть папка crosscompiler в user, там я находил файл arm-linux-gnueabi-gcc, запутался я с этим кросс-компилятором)), как им пользоваться так и не понял, вся работа с ним заключается в написании определённых мэйкфайлов моих программ для этого кросс-компилятора? Заранее спасибо за помощь
Спуститься к концу Подняться к началу
Персональная информация
Konachan
Добавлено 18.07.2017 19:13 Сообщение: 9
Konachan
5

Пункты: 3815
Регистрация: 30.08.2014
Цитата
crosscompiler в user, там я находил файл arm-linux-gnueabi-gcc

Да, это то, что надо. Скорее всего. Советую погуглить на тему начала работы с gcc и сделать пару хелловорлдов под хостовую машину, ибо arm-linux-gnueabi-gcc это и есть gcc, только с заточкой под нужную архитектуру.
Или, что еще проще, поставить на плату дебиан (есть готовые образы в сети) и собирать код прямо на плате через ssh.
Спуститься к концу Подняться к началу
Персональная информация
chinaec
Добавлено 05.08.2017 18:41 Сообщение: 10
chinaec
0

Пункты: 10
Регистрация: 05.08.2017
Пол: Женщина
Из: Харбин
как все запутано!
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-iMX6Q