Как кросс-компилировать в Linux - PullRequest
1 голос
/ 31 января 2012

У меня есть make-файл, и если я хочу скомпилировать его для разных компиляторов, какие изменения мне нужны в моем make-файле?Я знаю, как изменить значение CC, которое является моим компилятором.Какие еще изменения мне нужны?Например, мой вот мой make-файл:

CC=gcc
CFLAGS=-c -Wall

all: hello

hello: main.o factorial.o hello.o
    $(CC) main.o factorial.o hello.o -o hello

main.o: main.cpp
    $(CC) $(CFLAGS) main.cpp

factorial.o: factorial.cpp
    $(CC) $(CFLAGS) factorial.cpp

hello.o: hello.cpp
    $(CC) $(CFLAGS) hello.cpp

clean:
    rm -rf *o hello

Какие изменения мне нужны, чтобы скомпилировать его для другого процессора?А как узнать название компилятора арки компоновщика и т. Д. Процессора?

Ответы [ 2 ]

1 голос
/ 31 января 2012

Это зависит.

Если вы уже используете компилятор, который может генерировать код для разных целей, это вопрос установки правильных флагов, например, представьте CC=süper-cross-compiler и CFLAGS=eye-phone.

Если вам нужно переключиться на другой компилятор с совместимыми флагами, вам придется изменить переменную $(CC) и, возможно, другие, или, возможно, вы установите другой псевдоним в своей среде оболочки.

Существует порт Linux окна GCC для порта MinGW. Некоторые дистрибутивы поставляют его как mingw-gcc; на них вы бы CC=mingw-gcc.

В любом случае и вообще, вам нужно настроить несколько вещей. Все зависит от конкретных обстоятельств.

0 голосов
/ 31 января 2012

В make определить CC как

CC=$(CROOSS)gcc

Вызов сделать как

CROSS=ppc_8xx- make 

CROSS может быть arm-linux-gnu- или любым другим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...