makefile的静态链接库和动态链接库示例

1、静态链接库:

########################################################################
#
#		makefile of libIVHS_Commonfunc.a debug building
#
########################################################################

CC = gcc
CXX = g++ -std=c++11
SOURCE_IVHSCLIENT_DIR= ../../src
OBJ_IVHSCLIENT_DIR= ./lib
LIB_DIR= ../../lib/linux

C_FLAGS=-O3 -W -fPIC -fno-exceptions -fno-rtti -fno-short-enums -D_LINUX_ -I../../../../input/inc/common -I../../../../input/inc/component -I../../../../input/inc/fundamental -I../../../../input/inc_inner/common -I../../../../input/inc_inner/component -I../../../../input/inc_inner/fundamental -I../../src
LDFLAGS+=
DEPEND_A=

SOAPCLIENT_LIB=$(LIB_DIR)/libimagequality.a

OBJ=$(OBJ_IVHSCLIENT_DIR)/imagequality.o 

all: prepare ${SOAPCLIENT_LIB}

prepare:
	mkdir -p $(OBJ_IVHSCLIENT_DIR)

${SOAPCLIENT_LIB}:${OBJ}
	rm -f $@
	ar -r $@ ${OBJ}

#################################################################
#
# COMMON SOURCE FILES
#
#################################################################
$(OBJ_IVHSCLIENT_DIR)/imagequality.o: $(SOURCE_IVHSCLIENT_DIR)/imagequality.cpp
	rm -f $@
	${CXX} -c ${C_FLAGS}  $< $(DEPEND_A) -o $@ $(LDFLAGS)
	
clean :
	rm -f $(OBJ_IVHSCLIENT_DIR)/*.o
	rm -f $(SOAPCLIENT_LIB)

 

2、动态链接库:

OUTDIR := ../output

NDK_BASE := 
COMPILER_PATH := $(NDK_BASE)
NDK_INCLUDE_PATH := $(NDK_BASE)
NDK_LIB_PATH := $(NDK_BASE)
NDK_STL_PATH := $(NDK_BASE)
NDK_STL_LIB_PATH := $(NDK_BASE)

CC := $(COMPILER_PATH)gcc
CXX := $(COMPILER_PATH)g++ -std=c++11
AR := $(COMPILER_PATH)ar
LD := $(COMPILER_PATH)gcc
RANLIB := $(COMPILER_PATH)ranlib

INC_BASE := -I$(NDK_INCLUDE_PATH)/usr
LIB_BASE := -L$(NDK_STL_LIB_PATH) -L$(NDK_LIB_PATH) 

EXTRA_OBJS = 

#.PHONY: debug_base
#debug_base:
#	@echo "NDK_BASE:" $(NDK_BASE)
#	@echo "CC:" $(CC)
#	@echo "CXX:" $(CXX)
#	@echo "AR:" $(AR)
#	@echo "LD:" $(LD)
#	@echo "RANLIB:" $(RANLIB)
#	@echo "CFLAGS:" $(CFLAGS)
#	@echo "CXXFLAGS:" $(CXXFLAGS)
#	@echo "INC_BASE:" $(INC_BASE)
#	@echo "MACROS_BASE:" $(MACROS_BASE)
#	@echo "MAKE:" $(MAKE)

CFLAGS := -O2 -fno-exceptions -fno-rtti -fno-short-enums -fPIC
CXXFLAGS := -O2 -fno-exceptions -fno-rtti -fno-short-enums  -fPIC

MACROS_BASE = -O2 -fno-exceptions -fno-rtti -fno-short-enums  -fPIC -D_LINUX_ -D_OS_64_BIT_ -D_REGISTER_GAMCM_ -D_CODEC_UNSUPPORT_DRM_ -DM_OVERLOAD_OPERATOR_NEW_KGL -D_AJL_SUPPORTED_ATTACHE_STREAM_ -D_TEST_C_CODE_ -D_UNSUPPORT_SVG_QBBDECODE_ -D_UNSUPPORT_WEBP_ENCODE_

SRCS:=$(wildcard ./*.c)

CXXSRCS:=$(wildcard ./imagequalitylinktest.cpp)

OBJS := ${SRCS:.c=.o}
CXXOBJS := ${CXXSRCS:.cpp=.o}

SO_NAME := libimagequality.so

OUTPUT :=../../output/linux/x64/$(SO_NAME)

INC := $(INC_BASE)
LIB := $(LIB_BASE)
MACROS := $(MACROS_BASE)

MACROS += -D_REGISTER_GAMCM_

INC	   += -I../../../../input/inc/common \
	      -I../../../../input/inc/fundamental \
	      -I../../../../input/inc/component \
	      -I../../../../input/inc/inc_inner/common \
	      -I../../../../input/inc/inc_inner/fundamental \
	      -I../../../../input/inc/inc_inner/component \
		  -I../../../../input/inc/inc_inner/other \
          -I../../src \

LIBS := -lc -lm -ldl -lgcc -lstdc++
LIBS       +=   -L../../../../output/linux/x64 \
			-L../../../../input/lib/linux/x64 \
		  -limagequality -lfundamental -lopenblas\
		  -lbtplatform -lc -lm -lstdc++ -lrt -lpthread -ldl -lgcc_s \


.PHONY: all
all: sharedlib 
sharedlib: $(OBJS) $(CXXOBJS)
	$(CC) -nostdlib -Wl,-soname,$(SO_NAME) -Wl,-shared,-Bsymbolic $^ $(LIB) $(LIBS) -o $(OUTPUT) -Wl,--no-undefined $(ALIB)

%.o: %.c 
	$(CC) -fpic -Os $(INC) $(MACROS) -c -o $@ $<
%.o: %.cpp
	$(CXX) -fpic -Os $(INC) $(MACROS) -c -o $@ $<	

.PHONY: clean
clean:
	rm -f $(OBJS) $(CXXOBJS) $(OUTPUT)

.PHONY: debug
debug: #debug_base
	@echo "INC:" $(INC)
	@echo "LIB:" $(LIB)
	@echo "MACROS:" $(MACROS)
	@echo "OUTPUT:" $(OUTPUT)

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值