Linux下Makefile中动态链接库和静态链接库的生成与调用
原创
©著作权归作者所有:来自51CTO博客作者寰宇CC的原创作品,请联系作者获取转载授权,否则将追究法律责任
2、编写Makefile文件
1)定义变量
首先定义SOURCE,OBJS和TARGET变量,用于指代我们项目中的源文件、目标文件和可执行文件。
2) 设置编译参数
CC:配置编译器为g++,
LIBS:需要调用的链接库(-l开头,去掉lib和.so。例:对 libopencv_core.so链接库的调用要写作:-lopencv_core),
LDFLAGS:链接库的路径(-L开头),
INCLUDE:头文件的路径。
3)链接生成
此步骤生成可执行文件(ELF),链接需要用到目标文件,由下一步产生
4)编译
此步骤生成目标文件(.o)
5)清理
此步骤清理可执行文件和所有的目标文件
#######################
# Makefile
#######################
# source object target
SOURCE := main.cpp func.cpp
OBJS := main.o func.o
TARGET := main# compile and lib parameter
CC := g++
LIBS :=
LDFLAGS := -L.
DEFINES :=
INCLUDE := -I.
CFLAGS :=
CXXFLAGS:= # link
#$(TARGET):$(OBJS)
$(CC) -o $@ $^# compile
#$(OBJS):$(SOURCE)
$(CC) -c main.cpp -o main.o
$(CC) -c func.cpp -o func.o# clean
clean:
rm -fr *.o
rm -fr $(TARGET)