我找到了一个库,libjson
我正在尝试将其构建为共享库并在项目中使用。建筑很简单;修复 Makefile 错误后,
# SHARED=1 make install
将编译并安装一个.so
in /usr/lib
. 问题是我的系统(Arch Linux)已经有一个名为 的库libjson
,Makefile 为我不假思索地覆盖了它!Arch 的库是作为依赖项安装的,因此无法替换。如果其他发行版有一个名为libjson
.
我能做些什么呢?我可以重命名库(libjson-mine
或其他东西),但动态链接离魔法只有几步之遥,所以我不知道这是否会破坏某些东西。 如何重命名库?
另一种选择是将库的源代码放入我当前项目的源代码树中,并让构建器创建一个静态库。(显然这使我的代码存储库有点混乱,因此不受欢迎。)如果我走这条路,我需要让链接器更喜欢我的libjson.a
而不是搜索/usr/lib
“合适的”(阅读:错误)库。 如何让链接器更喜欢我的版本?
或者,是否有我不知道的第三种选择?