linux ldd -r xx.so not found问题——之librdkafka编译

libkafka编译出so文件,所依赖的库在当前目录有,但是动态链接找不到,是编译时环境变量的设置问题。

当前目录中有librdkafka.so.1,但是还是报librdkafka.so.1 => not found。

手动设置export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH可解决

参考:https://blog.csdn.net/guangyacyb/article/details/85116560

https://blog.csdn.net/naughfy/article/details/84649252

正确的编译步骤如下:

1.设置环境变量

#运行时库路径
export LD_LIBRARY_PATH=/home/librdkafka/lib:$LD_LIBRARY_PATH
#编译时链接库路径
export LIBRARY=/home/librdkafka/lib:$LIBRARY_PATH
#C++头文件包含路径
export CPLUS_INCLUDE_PATH=/home/librdkafka/include:$CPLUS_INCLUDE_PATH
#C头文件包含路径
export C_INCLUDE_PATH=/home/librdkafka/include:$C_INCLUDE_PATH

2.configure

./configure --prefix=/home/librdkafka

3.修改Makefile,添加-Wl,-rpath,./

src/makefile修改:LIB_LDFLAGS+= $(LDFLAG_LINKERSCRIPT)$(LIBNAME).lds -Wl,-rpath,./

src-cpp/Makefile修改:LIBS := -L../src -lrdkafka -lstdc++ -Wl,-rpath,./

4.运行make

5.运行make install

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章