реклама на сайте
подробности

 
 
> Как задать нужный компилятор при компиляции исходников?
Dilim
сообщение Aug 28 2013, 13:24
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 28-08-13
Пользователь №: 78 089



Есть отладочная плата am3517evm на ядре cortex a8 и есть готовый SDK в котором собраны загрузчик, ядро и разные плюшки для запуска linux на данной плате. Для компиляции ядра и загрузчика написаны скрипты, которые используют кросс компилятор arm-arago-linux-gnueabi. Всё это делается под убунтой. Чтобы запустить на плате утилиту memtester, которая распространяется в виде исходников, нужно создать бинарник этой утилиты. После того, как я делаю make под убунтой полученный бинарник прекрасно запускается в ней же, но не хочет запускаться на плате. Как я понимаю нужно использовать компилятор из SDK, который бы собирал бинарник именно для платы. Что и как нужно прописать в makefile`е, чтобы make под убунтой использовала нужный компилятор?
Если можно, пожалуйста попдробней для нуба..
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Dilim
сообщение Aug 31 2013, 07:30
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 28-08-13
Пользователь №: 78 089



вовсю изучаю, да больно мудрёно) вот makefile без изменений:

CODE
CC = $(shell head -n 1 conf-cc)
LD = $(shell head -n 1 conf-ld)

SOURCES = memtester.c tests.c
OBJECTS = $(SOURCES:.c=.o)
HEADERS = memtester.h
TARGETS = *.o compile load auto-ccld.sh find-systype make-compile make-load systype extra-libs
INSTALLPATH = /usr/local

#
# Targets
#
all: memtester

install: all
mkdir -m 755 -p $(INSTALLPATH)/{bin,man/man8}
install -m 755 memtester $(INSTALLPATH)/bin/
gzip -c memtester.8 >memtester.8.gz; install -m 644 memtester.8.gz $(INSTALLPATH)/man/man8/

auto-ccld.sh: \
conf-cc conf-ld warn-auto.sh
( cat warn-auto.sh; \
echo CC=\'`head -1 conf-cc`\'; \
echo LD=\'`head -1 conf-ld`\' \
) > auto-ccld.sh

compile: \
make-compile warn-auto.sh systype
( cat warn-auto.sh; ./make-compile "`cat systype`" ) > \
compile
chmod 755 compile

find-systype: \
find-systype.sh auto-ccld.sh
cat auto-ccld.sh find-systype.sh > find-systype
chmod 755 find-systype

make-compile: \
make-compile.sh auto-ccld.sh
cat auto-ccld.sh make-compile.sh > make-compile
chmod 755 make-compile

make-load: \
make-load.sh auto-ccld.sh
cat auto-ccld.sh make-load.sh > make-load
chmod 755 make-load

systype: \
find-systype trycpp.c
./find-systype > systype

extra-libs: \
extra-libs.sh systype
./extra-libs.sh "`cat systype`" >extra-libs

load: \
make-load warn-auto.sh systype
( cat warn-auto.sh; ./make-load "`cat systype`" ) > load
chmod 755 load

clean:
rm -f memtester $(TARGETS) $(OBJECTS) core

memtester: \
$(OBJECTS) memtester.c tests.h tests.c tests.h conf-cc Makefile load extra-libs
./load memtester tests.o `cat extra-libs`

memtester.o: memtester.c tests.h conf-cc Makefile compile
./compile memtester.c

tests.o: tests.c tests.h conf-cc Makefile compile
./compile tests.c


в файле conf-cc по умолчанию вот эта строка:

Код
cc -O2 -DPOSIX -D_POSIX_C_SOURCE=200809L -D_FILE_OFFSET_BITS=64 -DTEST_NARROW_WRITES -c


это, как я понимаю, указание компилятора и параметры его вызова. я пытался менять на arm-arago-linux-gnueabi-gcc, то есть на тот, который мне нужен и указывать пусть до него в основном makefile с помощью:

Код
export PATH="/home/ti-sdk/linux-devkit/sysroots/i686-arago-linux/usr/bin:$PATH"


после чего из консоли за пускал make memtester, но как то не сложилось( что я делаю не так?

Цитата(psL @ Aug 31 2013, 10:42) *
там параметры тулчейна задаются через файлы conf-cc conf-ld, смотрите README.
Видимо в этих файлах нужно задать arm-arago-linux-gnueabi-gcc вместо сс


да, я не настолько нуб, чтобы не прочитать readme) я делал так, но в результате ошибки..

Сообщение отредактировал IgorKossak - Aug 31 2013, 09:54
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 13th August 2025 - 14:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01384 секунд с 7
ELECTRONIX ©2004-2016