1.创建Makefile工程
2.创建inc src Debug 目录
用于存放头文件源文件
3.编写Makefile
需要在有源文件的目标天剑Makefile文件,如下给出一个生成两个target的模板
###################################### # ####################################### #source file #源文件,自动找所有.c和.cpp文件,并将目标定义为同名.o文件 SOURCE := $(wildcard *.c) $(wildcard *.cpp) OBJS := $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE))) #target you can change test to what you want #目标文件名,输入任意你想要的执行文件名 TARGET := client server APP1 := client APP2 := server MAINS :=$(APP1).o $(APP2).o #compile and lib parameter #编译参数 CC := g++ LIBS := -lpthread -lrt -levent LDFLAGS := -L/usr/local/libevent/lib DEFINES := INCLUDE := -I. -I./inc -I/usr/local/libevent/include CFLAGS := -g -Wall -O3 $(DEFINES) $(INCLUDE) CXXFLAGS:= $(CFLAGS) -DHAVE_CONFIG_H #i think you should do anything here #下面的基本上不需要做任何改动了 .PHONY : everything objs clean rebuild everything : $(TARGET) all : $(TARGET) objs : $(OBJS) rebuild: veryclean everything clean : rm -fr *.so rm -fr *.o rm -fr ./Debug/$(APP1) rm -fr ./Debug/$(APP2) $(APP1) :$(APP1).o $(filter-out $(MAINS), $(OBJS)) $(CC) $(CXXFLAGS) -o ./Debug/$@ $^ $(LDFLAGS) $(LIBS) $(APP2) :$(APP2).o $(filter-out $(MAINS), $(OBJS)) $(CC) $(CXXFLAGS) -o ./Debug/$@ $^ $(LDFLAGS) $(LIBS)
注意:配置头文件目录 链接库目录 链接库名称
4.配置eclipse索引目录
此时,如果Makefile配置正确,可以正常编译,但是eclipse里因为没有配置头文件目录,一些库函数会找不到,需要进行以下配置