クロスコンパイル環境でのMakefileで、x86のgccが動く。

2009/12/22 | By KUMA | Filed in: 技術メモ.
CC=arm-linux-gcc
LIBS=-L/hoge/huga/lib
INCLUDES=-I/hoge/huga/include
TARGET=hage
OBJS=hage.o fuge.o

all: $(TARGET)
$(TARGET): $(OBJS)
	$(CC) $(INCLUDES) $(LIBS) -o $(TARGET) $(OBJS)

↑のような感じでクロスコンパイルでmakeを実行した場合に、↓のように個別のオブジェクトファイルのコンパイルにarm用のgccであるarm-linux-gccではなく、x86のgccが動いてしまう場合があった。

gcc -o hage.o hage.c
gcc -o fuge.o fuge.c

とりあえず、サフィックスルールというものを利用することで解決した。

CC=arm-linux-gcc
LIBS=-L/hoge/huga/lib
INCLUDES=-I/hoge/huga/include
TARGET=hage
OBJS=hage.o fuge.o

all: $(TARGET)
$(TARGET): $(OBJS)
	$(CC) $(LIBS) -o $(TARGET) $(OBJS)

.c.o:
	$(CC) $(INCLUDES) gcc -c $<

Tags: , , , ,

Comments are closed here.