linux下怎么编译动态库并且调用

样例描述:我有一个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可执行文件,其功能输入两个数自动完成加法和减法的计算功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值