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}
本文介绍如何使用g++命令构建跨平台的共享库。包括在同一目录及不同目录下的源文件编译流程,并提供了一个Makefile示例,帮助读者更好地理解和应用。
5673

被折叠的 条评论
为什么被折叠?



