2012-11-06 271 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