樣例描述:我有一個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可執行文件,其功能輸入兩個數自動完成加法和減法的計算功能