используя вышеуказанный материал создал в папке My1 два файла: my1.c и Makefile с кодом приведенным выше. (только в мэйкфайле изменил строчку на LDFLAGS=-L/usr/local/arm-none-linux-gnueabi/lib -static -s -o my1 my1.o, так как в local/bin/ нет arm... а он лежит сразу в local)
после запуска команды make получил следующее:
[root@armmaker my1]# make
Makefile:11: *** пропущен разделитель. Останов.
в чем может быть проблема?
ругается на строчку $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS$(LDLIBS_$@)) ?
я в мейкфайлах не особо разбираюсь, но может вот этот вариант правильней:
ну не знаю у меня hello world компилилось вообще без Makefile
просто выполнял /usr/local/bin/arm-none-linux-gnueabi/arm-none-linux-gnueabi-gcc my1.c -static
ЗЫ: пути надо поменять на свои. Без мейкфайла можно собрать только простейший хеловорлд. если прописать в PATH адрес до компилятора, в последствии можно вводить только arm-none-linux-gnueabi-gcc
полазел по форуму и нашел интересный пример для вас:
уф.. к концу дня мозг устал думать :)
попробуйте совет Hermes
поправив начальный путь на свой..
а какое происхождение ваше кросскомпилятора? как то он странновато установлен..
вечером, по возможности, попробую посмотреть что к чему..
update
нет, это не Выундовз, которая сама додумывает и придумывает за пользователя.
Здесь аскетичная и суровая ось всех народов - Линукс. Пока все не объяснишь - не поедет. :) Make будет опираться в своих знаниях по поиску содержимым Makefile и переменными текущего шелла (а вероятно еще чем-нить мной не постигнутым) Make можно задать вопрос - Make --help
окей, тогда next question xD:
допустим получил я my1 my1.o, я так понимаю первый это бинарник. его надо загрузить на плату и запустить через консоль? а где на плате будут храниться написанные программы? нужно используя файловую систему закинуть в какую нибудь папочку и оттуда запускать?
e. Полученный my1 скопировал в /tftpboot
10. И так! Апогей – программа запустилась на ките:
a. На ките с помощью tftp загрузил my1
b. Дал ему права на запуск командой chmod +x my1
my1 скопировал в /tftpboot
пункт А: как из Линукса на плате с помощью tftp загрузить My1 ?
tftp --help и где мне смотреть этот хелп? на плате нет, а Виртуальной станции в Линуксе тоже нет
такое ощущение что tftp нет, но ведь ядро же загрузили на плату через команду tftp_update
подскажите хоть мануал или статью где можно почитать про работу с файловой системой на плате (где там что лежит, куда закидывать проги, как их запускать)
эта.. не худо бы линуксу слегка поучиться.. уж больно вопросы примитивные..
скопируйте свой бинарник на любой доступный носитель (SD/MMC, USB Flash) и подмонтируйте этот накопитель к плате-киту..
про права на запуск не забудьте.
утилиты tftp, ftpget, ftpput входят в состав Busybox, т.е. чтобы они появились на плате надо включить их в конфигурации Busybox, пересобрать и обновить корневую ФС.
это принципиально разные понятия - "команда tftp_update" это всего лишь имя скрипта (можно горшком назвать), который выполняет последовательность команд в Uboot по загрузке бинарников и запуск ядра. Содержимое можно посмотреть, остановив Uboot и дав команду printenv. Напротив, существует _программа_ tftp для ОС Линукс. почувствуйте разницу..