gpt4 book ai didi

c - 无法找到-lGL,没有符号链接(symbolic link)怎么办?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:09:31 26 4
gpt4 key购买 nike

我正在编译一个共享库,在 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

我几乎到处都读到能够与之链接,我基本上有 2 个解决方案:

  1. 将 nvidia libGL.so 链接到标准/usr/lib 位置。对于任何试图编译 opengl 库的人来说,这似乎都是错误的。为什么链接器不使用 ldconfig 缓存?

  2. 手动将 -L/usr/lib/nvidia-current 附加到库搜索路径。又一次,错了,我怎么知道在所有系统上可以找到库的每个路径?

所以我真正的问题是:链接不在标准位置但位置已经在 /etc/ld.so.conf 中注册的库的标准和自动方法是什么?

最佳答案

/etc/ld.so.conf/lib/ld.so 用于在运行时解析共享库,它与链接内容无关编译时间。

正确的做法是链接到 /usr/lib/x86_64-linux-gnu/ 中的 libGL.so 应用程序将使用 nvidia 的libGL.so 在运行时。这应该不是问题,因为 OpenGL 接口(interface)是稳定的并且两个库中的符号是相同的,只是实现不同。

关于c - 无法找到-lGL,没有符号链接(symbolic link)怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8521553/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com