我在同一系统的不同位置安装了不同版本的 Libnet 库:
whereis libnet
libnet: /usr/lib/libnet.la /usr/lib/libnet.a /usr/lib/libnet.so /usr/local/lib/libnet.la /usr/local/lib/libnet.a /usr/local/lib/libnet.so /usr/include/libnet.h /usr/include/libnet /usr/man/man3/libnet.3
我在编译依赖于这些 libnet 库的程序时遇到一些问题,因此我想删除“usr/local/....”-ones。你能告诉我该怎么做吗,即,当我在命令行上使用 whereis libnet 时,我不想看到“/usr/local/...”引用?!
谢谢你!
答案1
我在编译依赖于这些 libnet 库的程序时遇到一些问题,因此我想删除
/usr/local/
-ones
通常不需要删除位于/usr/local
.所以不要被愚弄了whereis
。您可以通过 LD_LIBRARY_PATH
环境变量指定首先搜索库的库路径。
在您的情况下,您必须将变量/usr/lib
添加并附加到 make 过程的环境中。LD_LIBRARY_PATH
这通常是由
$ export LD_LIBRARY_PATH=/usr/lib
在开始 make 过程之前或在相关命令前面加上参数分配。通常看起来像
$ LD_LIBRARY_PATH=/usr/lib ./configure
如果你真的想摆脱下面的图书馆,/usr/local
你首先必须澄清一个问题。
您是如何安装该库的(因为它位于下面,/usr/local
所以很可能是您安装的):
- 与你的包管理器
- 借助于
make install
- 刚刚将二进制文件移动到目录中