linux下怎么编译动态库并且调用
樣例描述:我有一個main.cpp文件件,add.cpp ,add.h ,subtract.cpp ,subtract.h文件,main.cpp里面調(diào)用加法和減法的函數(shù),把加法和減法準(zhǔn)備編譯成動態(tài)庫 libalgorithm.so,然后main調(diào)用這個頭文件add.h,subtract.h,然后就能夠?qū)崿F(xiàn)調(diào)用動態(tài)庫
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動態(tài)庫
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可執(zhí)行文件,其功能輸入兩個數(shù)自動完成加法和減法的計算功能
總結(jié)
以上是生活随笔為你收集整理的linux下怎么编译动态库并且调用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Altium Designer20 PC
- 下一篇: VScode 快速更改编码格式