Linux 下不同目录下文件生成动态库.so

1、所有文件在一个文件目录下时

   头文件 A.h   B.h  C.h

 源文件A.cpp B.cpp C.cpp

命令:g++ -fPIC -c A.cpp  B.cpp C.cpp 生成各自的.o文件

     g++  -shared  -fPIC  A.o  B.o  C.o  -o libtest.so 

   

2、文件不在一个文件目录下时

在最后用-I把文件目录包含

g++ -fPIC -c  DceTradeChannel.cpp DceTradeLog.cpp Helper.cpp TradeChannelFactory.cpp  -I../include

g++ -shared -fPIC DceTradeChannel.o  DceTradeLog.o Helper.o  TradeChannelFactory.o -o libDceTradeChannel.so


这是运用Makrfile文件的例子

PROGRAM_NAME=tagmat
PROGRAM_HOME=..
LPATH=${PROGRAM_HOME}/${PROGRAM_HOME}/local/lib
LOCALPATH=${FDK}

INCLUDE_TAG=-I${PROGRAM_HOME}/src -I$(LPATH)/../include

CXX=g++
CFLAGS=-O3

SRC=$(wildcard *.cpp)
OBJ=$(patsubst %.cpp,%.o,$(SRC))

#
# Make rules starts here, you should need to edit anything below this line
#
all : ${PROGRAM_NAME}
	@(if [ ! -d ${LPATH} ]; then mkdir ${LPATH}; fi)
	@(mv ${PROGRAM_NAME} ${LPATH}/${PROGRAM_NAME})

${OBJ} : ${SRC} ${HEADER}
	$(CXX) $(CFLAGS) -c ${SRC} ${INCLUDE_TAG}

${PROGRAM_NAME} : ${OBJ}
	$(CXX)  $(CFLAGS) -o ${PROGRAM_NAME} ${OBJ} -L${LPATH}/ -lmatio  -lz  

clean:
	rm -rf *.o ${LPATH}/${PROGRAM_NAME}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值