2012-11-06 225 views
0

这是我make文件交叉编译源到Linux

EXE  = signsrch 
CFLAGS += -s -O2 
PREFIX = /usr/local 
BINDIR = $(PREFIX)/bin 
SRC  = $(EXE).c 

all: 
    $(CC) $(CFLAGS) -c disasm.c 
    $(CC) $(CFLAGS) -c asmserv.c 
    $(CC) $(SRC) $(CFLAGS) -o $(EXE) *.o 

install: 
    install -m 755 -d $(BINDIR) 
    install -m 755 $(EXE) $(BINDIR)/$(EXE) 

.PHONY: 
    install 

我想交叉编译它为我的Ubuntu和我想:

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- 

,但我得到未知类型名称错误一堆âWordâ'

帮助?

+0

什么是**确切的错误信息**?你有没有安装交叉编译器工具链? –

回答

1

我们还需要看到一些代码,但是....

Windows有其自己的类型以上的香草Ç那些基本的东西一样,Linux操作系统。这听起来像DWORD,因为在Linux中可能不知道类型(可能)。您可能必须创建一个mytypes.h文件,该文件在为Linux平台构建时重新定义Windows标准,如DWORD到Linux。 Linux有types.h,定义了类似int32_t的东西。有关详细信息,请参阅this thread

我假设你有一个工作的交叉编译器设置,你只是与港口作斗争。如果你没有,那是你的第一份工作。你可以有一个基于Windows的编译器,它针对Linux(cygwin选项,在另一篇文章中提到过),或者去一个基于Linux的编译器和目标窗口(crosstool将在这里帮助)。虽然你似乎在瞄准arm,但我期望Ubuntu安装不是你想要构建的地方! :-)

1

要交叉编译,您需要目标平台的工具链,而不仅仅是一个Makefile。选中此tutorialCygwin