【发布时间】:2011-12-15 14:23:21
【问题描述】:
我正在编译一个共享库,在 ld 命令上有一个-lGL。但它在我的系统上找不到 libGL.so。 Nvidia 软件包在/etc/ld.so.conf.d/ 中正确设置了库路径。
连ldconfig -p | grep libGL.so的输出都找到了:
libGL.so.1 (libc6,x86-64) => /usr/lib/nvidia-current/libGL.so.1
libGL.so.1 (libc6) => /usr/lib32/nvidia-current/libGL.so.1
libGL.so (libc6,x86-64, OS ABI: Linux 2.4.20) => /usr/lib/x86_64-linux-gnu/libGL.so
libGL.so (libc6,x86-64) => /usr/lib/nvidia-current/libGL.so
libGL.so (libc6, OS ABI: Linux 2.4.20) => /usr/lib32/libGL.so
libGL.so (libc6) => /usr/lib32/nvidia-current/libGL.so
我几乎在所有地方都阅读了能够与之链接的内容,我基本上有两种解决方案:
将 nvidia libGL.so 链接到标准 /usr/lib 位置。对于任何试图编译opengl库的人来说,这似乎都是错误的。为什么链接器不使用 ldconfig 缓存?
手动将 -L/usr/lib/nvidia-current 附加到库搜索路径。再一次,错了,我怎么知道可以在所有系统上找到该库的每条路径?
所以我真正的问题是:与不在标准位置但位置已经注册到 /etc/ld.so.conf 的库链接的标准和自动方法是什么?
【问题讨论】:
-
对不起,我正在做 python 扩展。删除标签。