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 $<
Comments are closed here.