样例描述:我有一个main.cpp文件件,add.cpp ,add.h ,subtract.cpp ,subtract.h文件,main.cpp里面调用加法和减法的函数,把加法和减法准备编译成动态库 libalgorithm.so,然后main调用这个头文件add.h,subtract.h,然后就能够实现调用动态库
1、mkdir include ;lib ;src;
2、src 中放入add.cpp subtract.cpp,Makefile文件
Makefile :
CC ?= gcc
CXX ?= g++
#CXXFLAGS += -g -Wall -Werror -pthread -fopenmp -fPIC -g -std=c++11
CXXFLAGS += -g -Wall -Werror -pthread
INCLUDES = -I ~/E/test_libso/include
SRC_PATH := ~/E/test_libso/src
CXX_SRC = ${wildcard $(SRC_PATH)/*.cpp}
libalgorithm.so:$(CXX_SRC)
$(CXX) -o $@ $^ $(CXXFLAGS) $(INCLUDES) -shared -fPIC
clean:
rm -f *.so *.o
3、在src中make一下,就会生成libalgorithm.so动态库
4、在上一级目录中,放入main.cpp和Makefile
Makefile:
CC ?= gcc
CXX ?= g++
CXXFLAGS += -g -Wall -Werror -pthread -fopenmp -fPIC -g -std=c++11
CXXFLAGS += -g -Wall -Werror -pthread
INCLUDES += -I ~/E/test_libso/include
LFLAGS += -L ~/E/test_libso/lib
LIBS = -lpthread -pthread -ldl -lalgorithm
SRC_PATH := ~/E/test_libso
CXX_SRC = ${wildcard $(SRC_PATH)/*.cpp}
TARGET=main
$(TARGET): $(CXX_SRC)
$(CXX) -o $@ $^ $(CXXFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS)
clean:
rm -f *.so *.o
5、make 一下,就会生成main可执行文件,其功能输入两个数自动完成加法和减法的计算功能