linux动态库so使用

C++静态库与动态库(比较透彻)

https://www.cnblogs.com/findumars/p/7128511.html

编译加上 -shared -fPIC 

编译目标改成 xxxx.so

CC       = gcc
CXX      = g++
CFLAGS   = -g
CXXFLAGS = $(CFLAGS)

LIBPATH = ./
#指定搜索so库的路径
LIBS = -Wl,-rpath=./lib:./lib/xxx -lxxx 
SRC = ./main.cpp
TARGET = ./xxxx.so

all: 
	$(CXX) $(OPTI) $(CXXFLAGS)  -shared -fPIC  $(SRC) -o $(TARGET) -L$(LIBPATH) $(LIBS)

.PHONY: clean
clean:
	rm -f $(TARGET)

使用第三方so库,并指定搜索路径

g++ gate_sample.cpp  -I inc/ -L build_linux/lib/x64/  -Wl,-rpath=./build_linux/lib/:./build_linux/lib/x64/  -lgatesdk

# ldd a.out 
    linux-vdso.so.1 =>  (0x00007ffe437f4000)
    libgatesdk.so => ./build_linux/lib/x64/libgatesdk.so (0x00007fa968197000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fa967e900

 

so文件依赖和提供符号 查看

https://blog.csdn.net/farmwang/article/details/76389753

 

 

r$ ldd  -r  ./dist-debug/webrtc_agent/webrtcLib/build/Release/webrtc.node
undefined symbol: _ZN2v86String9Utf8ValueC1ENS_5LocalINS_5ValueEEE    (./dist-debug/webrtc_agent/webrtcLib/build/Release/webrtc.node)
undefined symbol: _ZN2v88internal9Internals20CheckInitializedImplEPNS_7IsolateE    (./dist-debug/webrtc_agent/webrtcLib/build/Release/webrtc.node)
undefined symbol: av_register_all    (./dist-debug/webrtc_agent/webrtcLib/build/Release/webrtc.node)
undefined symbol: av_buffer_create    (./dist-debug/webrtc_agent/webrtcLib/build/Release/webrtc.node)
undefined symbol: _ZN2v814ObjectTemplate11NewInstanceENS_5LocalINS_7ContextEEE    (./dist-debug/webrtc_agent/webrtcLib/build/Release/webrtc.node)
undefined symbol: _ZN2v

c++filt _ZN2v86String9Utf8ValueC1ENS_5LocalINS_5ValueEEE

v8::String::Utf8Value::Utf8Value(v8::Local<v8::Value>)

 

-L、-rpath和-rpath-link的区别

https://www.cnblogs.com/candl/p/7358384.html

export LD_LIBRARY_PATH=/usr/local/log4cxx/lib:$LD_LIBRARY_PATH
#export LD_LIBRARY_PATH=/usr/local/log4cxx/lib
export LIBRARY_PATH=/usr/local/log4cxx/lib:$LIBRARY_PATH

LD_LIBRARY_PATH详解
https://www.jianshu.com/p/a62e1d327023

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值