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

来源:互联网 发布:淘宝充话费上钻 编辑:程序博客网 时间:2024/06/03 21:32

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=tagmatPROGRAM_HOME=..LPATH=${PROGRAM_HOME}/${PROGRAM_HOME}/local/libLOCALPATH=${FDK}INCLUDE_TAG=-I${PROGRAM_HOME}/src -I$(LPATH)/../includeCXX=g++CFLAGS=-O3SRC=$(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
原创粉丝点击