.cc与.cpp源文件混合编译

工程中包含了两个子目录,include和source,分别存放了头文件和源文件,头文件和源文件都包含多种类型,头文件包含了.h和.hpp,源文件包含了.cc和.cpp。在这种情况下,Makefile应该怎么组织呢?

|——————/include/ .h .hpp
|
|——————/source/ .cc .cpp
|
|——————Makefile

我使用了比较笨的方法,将.cc和.cpp分别编译成.o,再将.o编译成可执行文件。

SOURCE_CC = $(wildcard ./source/*.cc)
SOURCE_CPP = $(wildcard ./source/*.cpp)

OBJS_CC = $(patsubst %.cc, %.o, $(SOURCE_CC))
OBJS_CPP = $(patsubst %.cpp, %.o, $(SOURCE_CPP))
EXE = main

$(EXE):$(OBJS_CC) $(OBJS_CPP)
        g++ -o $@ $^

%.o:%.cc
        g++ -o $@ -c $^ -I./include

%.o:%.cpp
        g++ -o $@ -c $^ -I./include


.PHONY:clean
clean:
        -rm $(EXE) *.o

执行make,编译结果如下:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章