惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
N
Netflix TechBlog - Medium
aimingoo的专栏
aimingoo的专栏
P
Proofpoint News Feed
F
Fortinet All Blogs
大猫的无限游戏
大猫的无限游戏
I
InfoQ
V
V2EX
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
有赞技术团队
有赞技术团队
G
Google Developers Blog
L
LangChain Blog
博客园_首页
M
MIT News - Artificial intelligence
H
Hackread – Cybersecurity News, Data Breaches, AI and More
月光博客
月光博客
IT之家
IT之家
量子位
宝玉的分享
宝玉的分享
S
SegmentFault 最新的问题
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
雷峰网
雷峰网

博客园 - -银光-

从后台架构专家到大模型推理“新人”:AI 时代 Infra 工程师的进化之路 大模型推理加速:共享前缀(Shared Prefix)优化技术的全面解析 以持续成功为终极目标:构建务实的工程师文化 从 305 GB 到 7.4 GB:大模型 KVCache 架构演进全景 大模型推理引擎中的 Beam Search:工程挑战、主流实现与 SGLang 深度优化 从词向量到大模型:NLP 技术演进浅记 基于 mini-sglang 学习大模型推理关键功能 【短文】大模型推理加速:从面向对象到面向数据设计 大模型推理加速:Overlap Scheduling 的深入剖析与性能权衡艺术 vLLM 权重加载机制全解析:从挑战到理想架构 基于 nano-vLLM 学习大模型推理关键功能 SGLang 的 DP Attention 模式浅析 SGLang 的 PP 模式浅析 SGLang 的 TP 模式浅析 SGLang 分布式集群模式概览 了解英伟达和黄仁勋——基于《英伟达之道》和《英伟达之芯》 C++ lambda 引用捕获临时对象引发 coredump 的案例 GCC8 编译优化 BUG 导致的内存泄漏 C++小练习:字符串分割的高性能实现 B+树的Copy-on-Write设计 Xapian索引-文档检索过程分析之匹配百分比 Xapian索引-文档检索过程分析 Xapian的内存索引-添加文档 Xapian的内存索引 Xapian使用入门
so库链接和运行时选择哪个路径下的库?
-银光- · 2019-03-23 · via 博客园 - -银光-

    总结今天遇到的一个so库链接、运行问题。

    这几天修改了xapian的源码,重新编译so库,再重新编译之前的demo程序,跑起来后却发现执行的函数并非我修改过的,使用的还是老版本。折腾了一会儿,发现是因为/usr/local/lib目录中含有同名so库导致。这里记录下正确的解决思路。

1 确保链接到了正确的so库

    gcc可以通过-L指定链接时所依赖库的搜索路径,譬如:g++ -std=c++0x -L/data/home/cswuyg/xapian_proj/xapian-core-1.2.25-install/lib -o hello_world hello_world.o  -lxapian。那么,如果系统路径中跟-L路径中有同名库,哪个更优先呢?优先级如下:

(1)-L指定的目录;

(2)环境变量LIBRARY_PATH指定的目录;

(3)/lib /usr/lib usr/local/lib 目录;

    也就是说-L指定的目录是优先使用的,即便系统目录中含有同名so库,也没有关系。可以在编译命令中加上--verbose查看链接详情信息,会列出来collect2所使用的所有-L目录。对编译链接出来的ELF文件,可以采用ldd工具查看依赖的so情况

2 确保运行时使用了正确的so库

    链接和运行所搜索的so库路径是分开的,可以通过在链接时通过-Wl-rpath=xx强制指定从某个地方读取,譬如强制在同目录下读取:g++ -std=c++0x -L/data/home/cswuyg/xapian_proj/xapian-core-1.2.25-install/lib  -Wl,-rpath=. -o hello_world hello_world.o  -lxapian 。

    之前我遇到的问题就是因为没有使用-Wl,-rpath,导致运行时使用的so是系统目录下的同名so。

     链接和运行时的so路径资料可以参考这里:https://www.cnblogs.com/youxin/p/5357614.html