如何在linux中交叉编译

时间:2012-01-31 12:49:45

标签: c linux compilation

我有一个makefile,如果我想为不同的编译器编译它,我的makefile需要哪些更改?我知道的是改变我的编译器的CC值。我还需要做哪些其他更改?例如 我的这里是我的文件:

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 个答案:

答案 0 :(得分:1)

这取决于。

如果您已经在使用可以为不同目标发出代码的编译器,那么设置正确的标志是一个问题,例如:想象CC=süper-cross-compilerCFLAGS=eye-phone

如果必须切换到另一个具有兼容标志的编译器,则必须更改$(CC)变量和其他变量,或者可能在shell环境中设置另一个别名。

GCC Windows端口MinGW有一个Linux端口。某些发行版将其作为mingw-gcc发送;在他们身上,你会CC=mingw-gcc

无论如何,一般来说,你必须调整多个东西。这完全取决于具体情况。

答案 1 :(得分:0)

在make define CC中

CC=$(CROOSS)gcc

调用make like

CROSS=ppc_8xx- make 

CROSS可以是arm-linux-gnu-或者其他什么。