歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

交叉編譯中需要注意make的隱晦規則

熟悉Linux的都知道,GUN 的make工具在生成可執行程序的過程中為我們提供了非常大的便利。不過要寫出高效、簡潔的Makefile可就不那麼容易了(比如像我這樣的菜鳥)。偶最近在進一步學習Makefile,就把遇到的問題以及自己的小小心得寫出來,需要指正的大家盡管噴^_^

不羅嗦了,先列出一個案例Makefile

CXX :=/opt/buildroot-ralink-mt7620/bin/mipsel-linux-g++
ROOTDIR := /home/yanwei/MTK7620/src
CFLAGS := -I$(ROOTDIR)/user/acmgr/include
LDFLAGS := -L$(ROOTDIR)/user/acmgr/obj/cmapi -L$(ROOTDIR)/lib/liblog -L$(ROOTDIR)/lib/lib
LIB :=-ldl -lpthread -lezxml -llog -ldevutils -lm -lzlog


CFLAGS          +=-D_GNU_SOURCE -I$(ROOTDIR)/lib/liblog -I$(ROOTDIR)/lib/include
LDFLAGS        +=-Llib
LIB            +=-lcmapi
CPPFLAGS := $(CFLAGS)


SRC := acmgr_client.cc
OBJ := $(SRC:.cc=.o)
DEF := $(patsubst %.o, %.d, $(OBJ))

all : acmgr_client
acmgr_client: $(OBJ)
        $(CXX)  -Wall -Wunused -o acmgr_client $< $(CFLAGS) $(LDFLAGS) $(LIB)


.PHONY: all clean

clean:
        -rm acmgr_client *.o

-include $(DEF)

Copyright © Linux教程網 All Rights Reserved